调整窗口大小而不显示窗口内容

在Windows中,您有一个设置为“拖动时显示窗口内容”。 当这个closures时,你改为调整窗口的轮廓。

我的WPF应用程序有很多控件,所以resize非常缓慢。 有没有办法让我的应用程序resize只显示窗口大纲,而不是总是更新内容?

我发现这个问题关于WinForms,但不幸的是,我无法适应WPF。 我可以挂钩到HwndSource ,但在Windows 10中的消息号码可能已经改变,所以if语句中的答案是从来没有input…或者可能有其他的东西在工作。

另外, if在调用WndProc base之后,又改变了一个系统参数,那么在调用完系统参数后重新设置系统参数。 但是调用该方法不是WPF中的选项,因为Window对象无法转发消息。

 public void OnViewLoaded() { HwndSource source = HwndSource.FromHwnd( new WindowInteropHelper(this).Handle); source?.AddHook(WndProc); } private static IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { if (msg == WM_SYSCOMMAND && (wParam.ToInt32() & 0xfff0) == SC_SIZE) { // This if is never entered int isDragFullWindow; GetSystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, out isDragFullWindow, 0); if (isDragFullWindow != 0) SetSystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 0, 0, 0); // How to call this? base.WndProc(ref m); if (isDragFullWindow != 0) SetSystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 1, 0, 0); } }