C# 如何强制窗口重画?
我有一个全屏窗口,使用以下代码:C# 如何强制窗口重画?,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我有一个全屏窗口,使用以下代码: WindowStyle = System.Windows.WindowStyle.None; WindowState = System.Windows.WindowState.Maximized; Topmost = true; 它在Win7下工作正常,但在WinXP下,当窗口全屏显示时,某些窗口元素不会被重新绘制。有没有办法强制窗口进行完全重画和布局更新 UPD all已重绘ok,如果我切换到另一个带有Atl选项卡的应用程序,然后返回到我的应用程序您可以使用
WindowStyle = System.Windows.WindowStyle.None;
WindowState = System.Windows.WindowState.Maximized;
Topmost = true;
它在Win7下工作正常,但在WinXP下,当窗口全屏显示时,某些窗口元素不会被重新绘制。有没有办法强制窗口进行完全重画和布局更新
UPD all已重绘ok,如果我切换到另一个带有Atl选项卡的应用程序,然后返回到我的应用程序您可以使用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();
不幸的是,在这种情况下它似乎不起作用。问题依然存在。这是否也与您的案例有关@阴影向导,看起来很像,但我使用.NET4