Laden...

WPF: Transparenz im Fenster und trotzdem normale Border anzeigen

Erstellt von m.grauber vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.121 Views
M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren
WPF: Transparenz im Fenster und trotzdem normale Border anzeigen

Hallo,

ein WPF-Fenster soll ganz normal angezeigt werden (Rahmen, Min/Max/Closebuttons etc.) Ich möchte aber in einer Gridzelle trotzdem einen teiltransparenten Bereich "ausstanzen" (Opacity 0.5). Es reicht mir, wenn der Hintergrund nur dargestellt wird und man beim anklicken in der aktuellen Form bleibt.

Scheinbar ist das nur möglich, wenn die gesamte Form transparent gemacht wird. Nur ich möchte mir die Nachbildung des Rahmens mit den Button etc. sparen und die Standardrahmen mit Titel anzeigen. Zudem kann man den Rahmen ohnehin nicht richtig nachbilden, da der ja unter jeder Windows-Version anders aussieht.

Gibt es da ein Kniff?

Grüße

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

Gelöschter Account
vor 13 Jahren

Transparenz in WPF ist eine echte Transparenz. Wenn du also in einer Gridzelle sagst, das der Bereich Transparent sein soll, dann wird das dahinterliegende Control Angezeigt. Da das Window aber nicht Transparent an dieser Stelle ist, wird das Window angezeigt. Du musst also das Window an dieser Stelle ebenfalls Transparent machen (nur an dieser Stelle... das geht), wenn du den Desktop anzeigen lassen willst.

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo JAck30lena,

danke für Die Hilfe! Das mit der Transparenz der Zelle und des Grids hatte ich wie folgt versucht:

  • Im Window befindet sich ein Grid dessen Background auf Transparent gesetzt wird
  • Im Grid wird in der betroffenen Stelle z. B. ein Stackpanel eingebaut, das auch auf Transparent gesetzt wird.

Nur wie wird der Background des Windows an dieser Stelle transparent gemacht? Das Grid ist doch das "oberste" Element des Windows und lässt weitere Objekte nicht zu?

musst also das Window an dieser Stelle ebenfalls Transparent machen (nur an dieser Stelle... das geht)

--> Die einzige Lösung, die ich kenne, ist das gesamte Window transparent zu machen, aber das möchte ich ja vermeiden.

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

Gelöschter Account
vor 13 Jahren

Du musst "AllowTransparency" auf "true" stellen und den Background auf einen Brush oder ähnliches setzen, der halt nur den einen definierten Bereich transparent zeichnet.

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo JAck30lena,

wenn ich "AllowTransparency" auf true setze, verschwindet aber (Rahmen, Min/Max/Closebuttons etc.) das wollte ich aber wie gesagt vermeiden.

Also d.h. es geht nicht?

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]

M
m.grauber Themenstarter:in
343 Beiträge seit 2010
vor 13 Jahren

Hallo,

es gibt also tatsächlich keine Möglichkeit, im WPF-Fenster Bereiche transparent zu machen, aber trotzdem den normalen Fenstertitel mit den Buttons minimieren, maximieren, schließen zu erhalten und die Border sizable zu machen? (Ohne das man das alles nachbaut!!?)

WindowStyle sollte also trotz AllowsTransparency unbedingt irgendwie auf "SingleBorderWindow" geändert werden können.

Hat niemand mehr eine Idee? 🙁

Mfg
Michael

PS: Ich stelle nur Fragen, wenn ich in Büchern, im Web und in Foren nichts gefunden habe. Dumme Fragen bitte ich zu entschuldigen!

:] VISUAL STUDIO 2017 + .NET FRAMEWORK 4.5 + SQL-Server 2012 :]