2

カスタムウィンドウフレームを使用するWPFアプリケーションがあります。私の問題は、Windows7のAeroSnapで最大化されたウィンドウを「スナップ解除」できないことです。

私のウィンドウのプロパティ:

  • AllowsTransparencyに設定されていますtrue
  • WindowStyleに設定されていますNone
  • ResizeModeに設定されCanResizeWithGripます。

私は次のようにウィンドウドラッグの動きを処理します:

private void TitleBarGrid_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    DragMove();
}

ウィンドウを左、右、上にドッキングして、通常のウィンドウのように動作させることができます(それぞれ、画面の左半分に拡大、画面の右半分に拡大、最大化)。

Aero Snapがどのように機能するかはわかりませんが、奇妙なことに、通常のWPFウィンドウ(非カスタムウィンドウ)は問題なく機能します。問題なく最大化されていれば、スナップを外すことができます。それでは、なぜ上記のプロパティをウィンドウに適用すると、それが壊れるのでしょうか。

これを機能させるために、カスタムWMメッセージ処理を行う必要がある可能性はありますか?

4

1 に答える 1

2

結局、MicrosoftのWPFシェル統合ライブラリを使用することになりました。AeroSnapを機能させるために必要なすべての低レベルの魔法を処理します。

于 2010-11-07T20:22:21.260 に答える