2

我有一个使用自定义窗口框架的 WPF 应用程序。我的问题是我无法在 Windows 7 中使用 Aero Snap“取消捕捉”我的最大化窗口。

我的窗口的属性:

  • 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

I ended up just using the WPF Shell Integration Library from Microsoft. It handles all of the low-level magic necessary to make Aero Snap work.

于 2010-11-07T20:22:21.260 回答