نافذة مخصصة WPF: لا يمكن "UNSNAP" نافذة تعظيم مع Win7 Aero Snap
سؤال
لدي تطبيق WPF يستخدم إطار نافذة مخصص. مشكلتي هي أنه لا يمكنني "إلغاء" نافذتي إلى أقصى حد مع Aero Snap في Windows 7.
خصائص نافذتي:
AllowsTransparency
تم تعيينه علىtrue
WindowStyle
تم تعيينه علىNone
ResizeMode
تم تعيينه علىCanResizeWithGrip
.
أنا أتعامل مع حركة السحب النافذة مثل:
private void TitleBarGrid_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
DragMove();
}
يمكنني إرساء النافذة إلى اليسار ، إلى اليمين ، وإلى الأعلى ، وجعلها تتصرف مثل النوافذ العادية (توسيعها لملء النصف الأيسر من الشاشة ، التوسع لملء النصف الأيمن من الشاشة ، إلى أقصى حد ، على التوالي).
لست متأكدًا من كيفية عمل Aero Snap ، لكن ما أجده غريبًا هو أن WPF Windows العادي (Windows غير المتوحش) يعمل بشكل جيد ؛ يمكنني إلغاء توضيحهم إذا تم تعظيمهم دون مشكلة. لماذا إذن تطبيق الخصائص أعلاه على نافذتي كسر ذلك؟
هل من الممكن أنني بحاجة إلى القيام ببعض معالجة رسائل WM المخصصة لجعل هذا العمل؟
المحلول
انتهى بي الأمر فقط باستخدام مكتبة تكامل شل WPF من Microsoft. إنه يتعامل مع جميع السحر ذي المستوى المنخفض اللازم لجعل Aero Snap يعمل.