我有一个全屏窗口,使用以下代码:
WindowStyle = System.Windows.WindowStyle.None;
WindowState = System.Windows.WindowState.Maximized;
Topmost = true;
在Win7下运行正常,但在WinXP下,当窗口全屏时,一些窗口元素不会被重绘。有没有办法强制窗口进行完全重绘和布局更新?
如果我使用Atl-Tab切换到另一个应用程序然后回到我的
,那么UPD全部重新绘制正常答案 0 :(得分:5)
您可以使用Windows API强制窗口重新绘制。
示例类实现:
public static class WindowsApi
{
private const int WmPaint = 0x000F;
[DllImport("User32.dll")]
public static extern Int64 SendMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
public static void ForcePaint(this Form form)
{
SendMessage(form.Handle, WmPaint, IntPtr.Zero, IntPtr.Zero);
}
}
用法:
Form testForm = new Form();
testForm.ForcePaint();