Hi.
Blöde frage, aber ich möchte bei einer PictureBox den Background-Image ändern. Weiß jetz nich mit welchem befehl. hab einwehnig rumgestöbert und bin auf ToArgb() gestoßen. .... nützt das was? wie kann ich da ein rgb-wert eingeben?
danke im vorraus
Sam
Hallo $4mu3l,
PictureBox => Forum Windows-Forms
Zur Frage: Ich weiß nicht, was du mit BackgroundImage meinst? Die Aufgabe der PictureBox ist ja gerade ein Bild anzuzeigen - natürlich im Vordergrund: PictureBox.Image
herbivore
oh man bin ich blöd.... -.-
sorry, ich hab es falsch erklärt.
also ich habe da mehrere pictureboxes, die nur einen BackColor(!) besitzen. jedoch mache ich ein neues fenster(form) auf und jetzt soll die gewisse Farbe in der neuen PictureBox angezeigt werden. ich möchte s durch eine Switch anweisung
es gibt insgesammt 8 farben (für jede straßengruppe von MONOPOLY) und je nach Straßengruppe, wie z.b. Lila für die BadStraße, soll die farbe in der textbox erscheinen. ich find es etwas lästig für jede straße eine eigenes Bild zu Basteln, darum wollte ich es so ändern ^^
das ändern möchte ich wärend des Ausführen der .exe datei machen
Hallo $4mu3l,
dann würde ich Panel statt PictureBox nehmen. Aber ohnehin hat jedes Control (also auch TextBoxen) die BackColor Eigenschaft, die du zu jedem beliebigen Zeitpunkt ändern kannst.
herbivore
erstmal dank, dass du mir so tatkräftig hilfst ^^
warscheinlich haben alle diese funktion, doch ich wüßte nicht, wie ich diese aufrufen kann.
könntest du mir ein beispiel zeigen, da ich davon überhaupt kein durchblick hab und das steht auch leider nicht in meinem buch.
Meinst du das hier?
pictureBox.BackColor = Color.Magenta;
Das hat aber nur einen sichtbaren Effekt, wenn das Bild in der PictureBox nicht die gesamte Fläche ausfüllt. ForeColor bringt in so einem Fall auch nichts, die bezieht sich nur auf die Schriftfarbe.
Bleibt noch, die Farbe direkt im Image zu ändern. Dafür müsstest du dich mit der System.Drawing.Graphics-Klasse und dem System.Drawing.Imaging-Namespace auseinandersetzen.
Hier noch ein Weg kurz angedeutet, wie man in einem Bild eine Farbe durch eine andere ersetzen kann. Ich hoffe das Prinzip wird einigermaßen klar, wenn du es dir in der Msdn-Doku angesehen hast:
PictureBox.Image
-> Graphics.FromImage
-> Graphics.DrawImage
-> ImageAttributes.SetRemapTable
-> ColorMap.OldColor/.NewColor
Gruss
Pulpapex
Du könntest entweder das Bild in der PictureBox ein paar Pixel kleiner machen als die eigentliche PictureBox und zentriert setzen und dabei halt eine BackColor angeben (Achtung, das Bild muss dann immer gleich groß sein!)
oder du erstellst dir z.B. ein UserControl in das du eine PictureBox legst, die halt ein parr Pixel kleiner ist als das Control. Als Eigenschaft gibst du dann die BackColor der Usercontrols, das Image-Attribut der PictureBox und was du halt noch so brauchst 😉
Ich hoffe das war jetzt eingermaßen verständlich...
ciao Anke
Hallo $4mu3l,
warscheinlich haben alle diese funktion, doch ich wüßte nicht, wie ich diese aufrufen kann.
für solche Fragen hilft ein Blick in die SDK-Doku. Ohne die kann man quasi nicht C#/.Net programmieren (jedenfalls ich nicht). Oft gibt es dort sogar auch Code-Beispiele.
herbivore
ersmal danke an alle 🙂
ich hab mir sowas wie dieses
pictureBox.BackColor = Color.Magenta;
gedacht. ^^
ist es möglich irgendwie da ein RGB wert statt ein synonym anzugeben?
und ist es irgendwie möglich auch ein gif bild mit transparenz zu zeigen? weil wenn ich BackColor auf Transparence mach, funktioniert es leider nich.
danke noch mal 🙂
Hallo $4mu3l,
ist es möglich irgendwie da ein RGB wert statt ein synonym anzugeben?
ja, und um mich zu wiederholen: für solche Fragen hilft ein Blick in die SDK-Doku. Ohne die kann man quasi nicht C#/.Net programmieren (jedenfalls ich nicht). Oft gibt es dort sogar auch Code-Beispiele.
Für Transparenz einer PictureBox musst du BackColor auf Transparent setzen und das Bild in PictureBox.Image muss Transparenz aufweisen.
herbivore