Zeke Xiao

Zeke Xiao

github

Windows 11 Snap Layouts WPF の進展

2022/1/13 に初期化
2023/8/11 に更新

WPF では、WindowChrome を使用した後、最大化と最小化を自分で処理する必要がありますが、Windows 11 の Snap Layouts 機能をトリガーすることはできません。現在の主な解決策は、WM_NCHITTEST イベントをキャプチャし、HTMAXBUTTON = 9 を返すことです。現在、.net framework 4.5.2 では完全に解決することができません。Snap Layouts は、フルスクリーンの場合にのみ表示されます。これは、別の Windows の Size イベントと関連している可能性がありますが、現時点では原因はわかりません。

マウスの HitTest イベント WM_NCHITTEST メッセージ(Winuser.h)- Win32 アプリ | Microsoft Docs

  1. WPF は Windows 11 スタイルの新しいテーマを追加すべきですか?・Issue #4749・dotnet/wpf (github.com)

  2. カスタムタイトルバー(WindowChrome)に Windows 11 の「Snap Layout」のサポートを追加する・Issue #4825・dotnet/wpf (github.com)

  3. MahApps Windows 11 integration · Issue #4140 · MahApps/MahApps.Metro (github.com)

  4. ControlzEx はすでにサポートを追加しました https://github.com/ControlzEx/ControlzEx/pull/151
    NCHITTEST をオーバーライドしました。これが最終的な解決策であるはずです:https://github.com/ControlzEx/ControlzEx/blob/bd307541058cd21abed7b3d4553d24dfd05ad52f/src/ControlzEx/Behaviors/WindowChrome/WindowChromeBehavior.MessageHandling.cs#L442C33-L442C33


他のプロジェクトでは、最新バージョンの Electron がサポートされていますが、Firefox は対応していないようです。Firefox は安定版 94 でサポートが追加されました。UWP はネイティブでサポートされています。

Electron feat: enable windows control overlay on Windows by mlaurencin · Pull Request #29600 · electron/electron (github.com)

VSCode VS Code's maximize button doesn't trigger Snap Layouts in Windows 11 · Issue #127449 · microsoft/vscode (github.com)

Firefox 1718629 - Windows 11 Snap Layouts menu doesn't appear while hovering (mozilla.org)

Windows Terminal Snap Layouts Support: WM_NCHITTEST should return HTMAXBUTTON, HTMINBUTTON, ... for caption buttons · Issue #9443 · microsoft/terminal (github.com)

UWP カスタムタイトルバー Window.SetTitleBar(UIElement) Method (Windows.UI.Xaml) - Windows UWP applications | Microsoft Docs

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。