WPF Benutzerdefinierte Fenster: kann nicht „UNSNAP“ maximierten Fenster mit Win7 Aero-Snap
Frage
Ich habe eine WPF-Anwendung, die eine benutzerdefinierte Fensterrahmen verwendet. Mein Problem ist, dass ich kann nicht "UNSNAP" mein maximierter Fenster mit Aero Snap-in Windows 7.
Eigenschaften von meinem Fenster:
-
AllowsTransparency
wird auftrue
-
WindowStyle
wird aufNone
-
ResizeMode
wird aufCanResizeWithGrip
.
Ich handle Fenster ziehen Bewegung wie folgt:
private void TitleBarGrid_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
DragMove();
}
kann ich das Fenster nach links andocken, nach rechts und nach oben, und habe es wie normale Fenster verhalten (expand linke Hälfte des Bildschirms zu füllen, erweitern rechte Hälfte des Bildschirms zu füllen, maximierte, respectively).
Ich bin sicher nicht, wie Aero-Snap funktioniert, aber ich seltsam, was finden, ist, dass normale WPF-Fenster (nicht benutzerdefinierte Fenster) gut funktionieren; Ich kann sie unsnap, wenn sie ohne ein Problem maximiert werden. Warum dann nicht die Anwendung der oben genannten Eigenschaften zu meinem Fenster Pause das?
Ist es möglich, ich brauche einige benutzerdefinierte WM Nachricht tun Umgang mit dieser Arbeit zu machen?
Lösung
landete ich nur die Verwendung von WPF Shell Integration Library von Microsoft . Es kümmert sich um alle der Low-Level-Magie notwendig, um Aero Snap-Arbeit zu machen.