我有一个使用自定义窗框的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 Windows(非定期窗口)正常工作。如果没有问题,我可以将它们最大化。为什么将上述属性应用于我的窗口中断呢?

我可能需要做一些自定义的WM消息处理以进行这项工作吗?

有帮助吗?

解决方案

我最终只是在使用 WPF外壳集成库 来自微软。它处理使航空快照起作用所需的所有低级魔法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top