Areo Glass Effect und windowStyle auf "none" setzen die Größenänderung von widow nicht korrekt

9

Areo Glass Effect und windowStyle sind auf none gesetzt und AllowTransparency bewirkt, dass widow resize nicht richtig funktioniert

Nachdem ich das Areo Glass-Thema zu meinem Fenster hinzugefügt und WindowState auf None festgelegt habe, wird das Fenster nicht mehr richtig skaliert. Ich kann so groß werden, wie ich möchte, aber wenn die Größe kleiner wird, bleibt der Glaseffekt gleich breit und hoch.

Zum Beispiel klicke ich auf Maximieren. Das Fenster wird auf die gesamte Bildschirmgröße erweitert. Aber beim Wiederherstellen meines Fensters stellt sich die Wiederherstellung wieder her, aber nicht der Glaseffekt.

Alles was ich wirklich will, ist der Unschärfeeffekt. Ich interessiere mich nicht für das Glas, aber das scheint der einzige Weg zu sein, um eine transparente Unschärfe zu bekommen.

Wie kann ich das beheben? Das macht mich verrückt! Bitte Hilfe.

AnyOne ???

xaml

%Vor%

C #

%Vor%

    
Mike 18.11.2016, 21:33
quelle

1 Antwort

3

Es scheint, dass AllowsTransparency == True die Quelle dieses Verhaltens ist. Daher können Sie es entfernen. Sie sollten jedoch die Deckkraft des Backgroud Brush auf Null setzen:

%Vor%

Dies wird zusammen mit der Einstellung von CompositionTarget.BackgroundColor für Transparenz und die Verwendung von DwmEnableBlurBehindWindow function zu einem ähnlichen Ergebnis wie bei der Einstellung von AllowsTransparency == True führen.

Mit diesen Modifikationen ist das Aussehen des Fensters jedoch wegen seiner Umrandung nicht sehr angenehm. Der Rahmen wird verschwinden, wenn Sie ResizeMode=="NoResize" festlegen. In diesem Fall sollten Sie jedoch die Größenänderung selbst implementieren. Glücklicherweise ist dies einfach, indem Sie ein Thumb- und ein Handling-DragDelta-Ereignis hinzufügen. Hier ist der vollständige Code:

Xaml

%Vor%

CS-Code

%Vor%

Sie können das Ergebnis sehen:

    
Ron 23.02.2017 13:46
quelle

Tags und Links