从另一个应用程序激活它时的黑色WPF窗口?

时间:2016-03-03 15:07:36

标签: c# wpf

我正在开发一个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(".");

结果:

who the window it shows

我通过调用This.Show()找到了一个解决方案;在我的wpf窗口的激活事件

    public  void Window_Activated(object sender, EventArgs e)
    {
        this.Show();
    }

但是当这样做时,黑色窗口仍在那里,它显示一个快速的时间,像闪光灯,在应用程序显示错误锁定。

我尝试使用相同的代码来显示另一个应用程序(使用c plus plus创建)没有问题,但问题只是使用wpf应用程序我认为Winforms也是如此!谁能解决这个问题?

0 个答案:

没有答案