Window.Activate()无法正常工作

时间:2016-10-07 11:08:44

标签: c# .net wpf

有时,Window.Activate()无法在其他系统中使用。

var window = Application.Current.Windows.OfType<Window>().FirstOrDefault(y => y.IsActive) ?? Application.Current.Windows.OfType<Window>().FirstOrDefault();
if (window != null) 
    window.Activate();

我想要一个不应该在任何系统中失败的解决方案,并且也想知道其主要原因。

1 个答案:

答案 0 :(得分:0)

如果从非UI线程调用它,则可能会失败。在这种情况下,您应该将调用包装到调度程序中。

Application.Current.Dispatcher.Invoke(() =>
{       
    ///.... UI stuff
});