2009-09-23 14 views
8

Ich verwende DwmExtendFrameIntoClientArea in meiner WPF-Anwendung, um den Glaseffekt zu bekommen. Das funktioniert gut. Was ich tun möchte, ist die Farbe für das Glas zu ändern - Ich schreibe einen Countdown-Timer, und ich möchte, dass das Fenster die meiste Zeit die normale Glasfarbe ist und dann rot wird (aber immer noch mit Glas) wenn die Zeit abläuft.Ändern der Farbe von Aero Glas für mein Fenster?

Ich fand this question, die darüber spricht, wie man ein Farbverlaufsglas anwendet, und das funktioniert gut, wenn Sie eine andere Farbe auswählen. Leider sind die Grenzen nicht richtig eingefärbt.

Wenn ich die Grenzen mit ResizeMode="NoResize" ausschalten, dann habe ich mit eckigen Ecken. Ich möchte die abgerundeten Ecken behalten.

Ich schaute auf die Erstellung eines unregelmäßig geformten Fensters, mit AllowTransparency="True" und das funktioniert gut, aber sieht nicht aus wie ein Aero-Glas-Fenster. Es sieht ein bisschen flach aus.

Also: meine Frage: Wie erstelle ich ein Fenster in WPF, das wie Aero-Glas-Transparenz aussieht, aber eine andere Farbe verwendet?

+0

Ich versuche meinen eigenen Aero-Glas-Effekt zu implementieren. Ich bin sehr nah dran, die Lösung zu bekommen. Bitte schauen Sie sich an: http://stackoverflow.com/questions/10004802/create-vista-glass-effect-on-wpf-with-custom-color Vielleicht können wir uns eine Lösung einfallen lassen ... –

Antwort

2

Ich denke, der einzig mögliche Weg, dies zu erreichen, besteht darin, einen halbtransparenten gefüllten Rand zu verwenden und ihn über das gesamte Fenster oder den Teil, an dem das Glas angebracht wurde, zu zeichnen. Es ist ein Workaround, aber ich denke, es ist eine mögliche Lösung, da die Farbe des Glases vom Systembenutzer definiert wird und diese Einstellung Ihre eigenen überschreiben würde.

1

Ich stelle die gleiche Frage selbst.

Ich habe keine gute Lösung, obwohl die besten finde ich weit über so gekommen ist wie folgt aktualisiert:

HwndSource.FromHwnd(hwnd).CompositionTarget.BackgroundColor = Colors.FromArgb(100,255,0,0); 

Leider ist diese färbt die minimiert, die Größe und Schließen-Button, den ich lieber vermeiden.