Laden...

Farbe ändern

Erstellt von $4mu3l vor 18 Jahren Letzter Beitrag vor 18 Jahren 12.304 Views
$4mu3l Themenstarter:in
27 Beiträge seit 2005
vor 18 Jahren
Farbe ändern

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

Ich habe den Sachsen das Angeln beigebracht. Seitdem heißen sie Angelsachsen. Ich bin der König der Angler. ----------------------König Arthur, Ritter der Kokosnuss----------------------
49.485 Beiträge seit 2005
vor 18 Jahren

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

$4mu3l Themenstarter:in
27 Beiträge seit 2005
vor 18 Jahren

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

Ich habe den Sachsen das Angeln beigebracht. Seitdem heißen sie Angelsachsen. Ich bin der König der Angler. ----------------------König Arthur, Ritter der Kokosnuss----------------------
49.485 Beiträge seit 2005
vor 18 Jahren

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

$4mu3l Themenstarter:in
27 Beiträge seit 2005
vor 18 Jahren

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.

Ich habe den Sachsen das Angeln beigebracht. Seitdem heißen sie Angelsachsen. Ich bin der König der Angler. ----------------------König Arthur, Ritter der Kokosnuss----------------------
P
939 Beiträge seit 2003
vor 18 Jahren

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

379 Beiträge seit 2004
vor 18 Jahren

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

49.485 Beiträge seit 2005
vor 18 Jahren

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

$4mu3l Themenstarter:in
27 Beiträge seit 2005
vor 18 Jahren

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 🙂

Ich habe den Sachsen das Angeln beigebracht. Seitdem heißen sie Angelsachsen. Ich bin der König der Angler. ----------------------König Arthur, Ritter der Kokosnuss----------------------
49.485 Beiträge seit 2005
vor 18 Jahren

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