通常,当您打开模态对话框并尝试单击其父窗口时,模态对话框的标题栏会闪烁。在 WPF 中创建自定义、无边框、无边框窗口时,您将失去所有功能,必须自行重建。我左顾右盼,终生不知道如何让我的模态窗口闪烁。虽然还是发出嘟嘟的声音...
我想我将不得不监视 WndProc 中必须处理的某些事件,但我无法弄清楚是哪个事件或如何执行它。我尝试观察窗口更改和窗口更改事件以及 WM_ACTIVATE 事件,但无济于事。我确信我只是错过了一些简单的事情,但我将不胜感激对此的任何帮助。谢谢!
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
var retVal = IntPtr.Zero;
switch (msg)
{
case UnsafeNativeConstants.WM_NCACTIVATE:
retVal = UnsafeNativeMethods.DefWindowProc(hwnd, UnsafeNativeConstants.WM_NCACTIVATE, new IntPtr(1), new IntPtr(-1));
AssociatedObject.UpdateTitlebar((int)wParam == 1 ? true : false);
handled = true;
break;
}
return retVal;
}
The WndProc
我已经连接到附加到我的窗口的自定义行为。它在我的窗口上调用一个内部方法,该方法将适当地更新标题栏的颜色。
感谢@Hans Passant 为我指明了正确的方向。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)