2009-05-11 15 views
0

Gibt es eine Möglichkeit, ich kann einen Alpha-Wert festlegen, der alle folgenden GDI/GDI + -Anrufe betrifft? mit anderen Worten, ich suche die Transparenz für alle Anrufe auf einem Graphics Objekt.Decke Alpha-Komponente in GDI +

(Ich suche nach etwas ähnliches wie die *Transform Funktionen beeinflussen die Graphics Objekt sie genannt werden)

+0

Antwort bearbeitet ... Ich würde vorschlagen, einen Float zu nehmen, der Ihren Transparenzwert liefert. –

Antwort

1

Es sei denn, etwas gibt, das ich nicht bewusst bin, gibt um dies zu erreichen in GDI keine Einrichtung ist. Suchen Sie nach einer Möglichkeit, die relativen Alphawerte aller beim Zeichnen in einem GDI-Kontext verwendeten Farben zu ändern? Ich glaube nicht, dass so etwas existiert.

Eine bessere Idee könnte sein, Ihre Farben in Ihrem eigenen benutzerdefinierten Repository zwischenzuspeichern. Wenn Sie dann einen globalen (oder bereichsweiten) Alpha-Wert festlegen möchten, können Sie diese Farben verwenden, um diese Farben zu bearbeiten. Wenn ich mehr Informationen hätte, könnte ich wahrscheinlich eine Lösung finden, die besser zu Ihrer Umgebung passt, aber das ist alles, was ich nur anbieten kann, basierend auf dem, was in der Frage bereitgestellt wird.

bearbeiten

Nachdem Sie Ihren Kommentar zu lesen, wäre mein Vorschlag, Ihre Malerei-Code in eine Funktion zu aktivieren, die eine Graphics Aufgabe übernimmt, eine Lage/Größe (und was sonst angemessen ist, wenn dies nicht der Fall schon auf diese Weise) und eine Transparenz float (von 0 - 1.0). Sie können dann Ihre Farben in Ihrer Funktion basierend auf dem angegebenen Transparenzwert erstellen.

+0

Ich habe Code, der einige Formen zeichnet, wenn er ein Graphics-Objekt erhält. Ich möchte den gleichen Code wiederverwenden, um ein halbtransparentes Overlay während eines Drag & Drop zu zeichnen. Ich hatte gehofft, etwas wie g-> Transparenz = 0.5f zu machen ... :) –