为什么Window.Show()仍在窃取焦点?

时间:2016-03-07 14:00:40

标签: c# .net wpf c#-4.0

我有一个Mahapps MetroWindow(WPF),它有时被最小化到任务托盘,并且每分钟都有一个带有加载形式的任务。我的问题是当应用程序最小化时,它会在使用Show()激活加载表单时窃取焦点。即使我将ShowActivated和Topmost设置为false。我也试过在XAML中设置这些。

如何显示这个新的加载程序窗口(如果用户从任务托盘恢复应用程序),而不会将其从最小化状态中删除焦点并恢复自身?

Task.Factory.StartNew(() =>
{
    App.Current.Dispatcher.Invoke(() =>
    {
        this.IsEnabled                      = false;
        LoaderForm loaderForm               = new LoaderForm();
        loaderForm.Owner                    = Window.GetWindow(this);
        loaderForm.ShowActivated            = false;
        loaderForm.Topmost                  = false;
        loaderForm.WindowStartupLocation    = WindowStartupLocation.CenterOwner;
        loaderForm.Show();
    });
})

0 个答案:

没有答案