让用户抓住 window 调整大小,在 window 之外

Let user grab the window to resize, outside the window

在我的 WPF 应用程序中,我通过设置 Window 样式的 WindowChrome 属性 覆盖了默认值 window chrome(如 here).

我希望用户能够抓住 window 将其大小调整到 window 之外的几个像素,就像 Visual Studio 那样。我已经玩过 ResizeBorderThickness,但这似乎只定义了 window.

内的区域

我该怎么做?

下面的 gif 演示了 Visual Studio 和我的应用程序之间的区别。

Visual Studio 的主要 window 是一个 WPF window,但它不使用 window chrome 提供的默认值 OS.

相反,它创建了一个自定义发光效果:实际上,该效果是由四个原生 windows(每个都有自己的 HWND)实现的,它们放置在主要 (WPF) window 并使用位图渲染自己以获得 glow/shadow 效果。

由于这些 windows 可以处理鼠标输入,因此即使在光标到达主 window 的边界之前,它们也能够将鼠标光标切换到调整大小模式。

如果您认为创建自定义 chrome window 的努力是值得的,您可以尝试重新实现此功能。

您也可以为此尝试第三方组件,可以按原样使用它们,也可以根据提供的源代码创建您自己的分支。例如。查看 ControlzEx 库中的自定义 chrome window。

否则,如果您认为这个小功能不值得任何额外的努力 - 那么,也许最好接受默认功能。