C++ halbtransparente Fläche
Von: , 10.02.2012 09:13 Uhr
Ich möchte auf einen Canvas eine halbtransparente Fläche zeichnen, so dass eine dahinter auf dem gleichen Canvas gezeichnete Figur durchscheint.
Ich möchte auf einen Canvas eine halbtransparente Fläche zeichnen, so dass eine dahinter auf dem gleichen Canvas gezeichnete Figur durchscheint.
Befindest du dich im .net-System (System.Windows.Controls.Canvas) oder mit welcher Klasse zeichnest du?
Zum ausfüllen von Flächen-Hintergründen wird dort in der Regel das Brush-Objekt benutzt. (System.Windows.Media.Brush)
Zum Beispiel kann man einen SolidColorBrush als Hintergrund des canvas selbst setzen.
canvas.Background = new SolidColorBrush(new Color(128, 0, 0, 0));
Schafft einen schwarzen, aber 50% durchsichtigen (Alpha-Wert 128) Hintergrund.
Bei anderen Zeichen-Formen ist es glaub ich ähnlich gelöst.
Ein bereits erzeugter "Brush" kann nachträglich mit Hilfe der Property Opacity durchsichtig gemacht werden.
Ich möchte auf einen Canvas eine halbtransparente Fläche
zeichnen, so dass eine dahinter auf dem gleichen Canvas
gezeichnete Figur durchscheint.
Hallo Klaus,
meine Klasse ist Msgdipcustomcanvas::TGPCustomCanvas und deren Brush hat keine Eigenschaft Opacity. Leider kann ich am Canvas nicht drehen (der Aufrufparameter der Funktion, in der ich zeichne, ist fest).
Gruß WoLa
Ich hätte mir damit beholfen, das, was ich auf die Fläche zeichnen will, mit einem Grafik-Programm als zB. PNG-Bild zu zeichnen und dabei dann die Transparenz einzusetzen. Auf die Fläche hätte ich dann dieses halb transparente Bild projiziert. Das ist aber natürlich keine auf dauer zufriedenstellende Lösung, erst recht, falls du vom Verhalten des Benutzers abhängige Objekte transparent zeichnen möchtest. Da ich selbst noch nie mit dem Problem konfrontiert wurde, könnte ich nur das gleiche machen,wie du: Googeln.
Tut mir leid ^^" also da kann ich dir leider nicht Weiterhelfen.
Gruß und ich hoffe du findest eine Antwort darauf.
Ich möchte auf einen Canvas eine halbtransparente Fläche
zeichnen, so dass eine dahinter auf dem gleichen Canvas
gezeichnete Figur durchscheint.
Leider habe ich kein Ahnung von C++, Aber in C#, setzt man einfach die Eigenschaft "Opacity" auf den Wert den man haben möchte. Bei halbtransparent auf 50%.
Ich möchte auf einen Canvas eine halbtransparente Fläche
zeichnen, so dass eine dahinter auf dem gleichen Canvas
gezeichnete Figur durchscheint.
Entschuldige, dass ich dir da nicht weiterhelfen kann. Ich hatte bisher nur vollständige Transparenz auf eine Farbe eingesetzt. Selbst die VCL der Borland IDE hat nur vollständige Transparenz ermöglicht, wobei mein Wissen nicht wenige Jahre alt ist.
Du könntest schauen, ob du eine Library findest, die dir die Funktionalitäten ermöglicht. Oder du bindest 'ne .NET-Library ein.
gegrüßt!