我正在开发一个wpf应用程序,但我遇到了问题 当我从另一个应用程序激活我的应用程序时,它显示完全黑色(底部的演示)
这个激活我窗口的代码工作得很好,但窗口显示为黑色
class WinApi2
{
public const int SW_SHOWNORMAL = 5;
[DllImportAttribute("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImportAttribute("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImportAttribute("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
public static void ShowToFront(string windowName)
{
IntPtr firstInstance = FindWindow(null, windowName);
ShowWindow(firstInstance, SW_SHOWNORMAL);
SetForegroundWindow(firstInstance);
}
}
// Activating my window by calling:
ShowToFront(".");
结果:
我通过调用This.Show()找到了一个解决方案;在我的wpf窗口的激活事件
public void Window_Activated(object sender, EventArgs e)
{
this.Show();
}
但是当这样做时,黑色窗口仍在那里,它显示一个快速的时间,像闪光灯,在应用程序显示错误锁定。
我尝试使用相同的代码来显示另一个应用程序(使用c plus plus创建)没有问题,但问题只是使用wpf应用程序我认为Winforms也是如此!谁能解决这个问题?