如何将MainWindow带到焦点前面?

时间:2017-06-26 16:33:42

标签: c# wpf visual-studio xaml

我使用的是Visual Studio,WPF,XAML,C#。

我有一个按钮,可以打开一个新窗口TestWindow1。它一次只允许一个窗口实例,而不是重复。

即使焦点位于TestWindow1

MainWindow始终位于MainWindow前面。

如何将MainWindow置于焦点前方?

或者我如何阻止TestWindow1始终站在前面?

// Check if Test Window is already open
private Boolean IsTestWindow1Opened = false;

// Open Test Window
private void btnOpenTestWindow1_Click(object sender, RoutedEventArgs e)
{
    // Only allow 1 Window instance
    if (IsTestWindow1Opened) return;

    MainWindow mainwindow = this;

    testwindow1 = new TestWindow1(mainwindow);
    testwindow1.Owner = Window.GetWindow(this);

    testwindow1.Left = Left - 400;
    testwindow1.Top = Top + 0;

    testwindow1.ContentRendered += delegate { IsTestWindow1Opened = true; };
    testwindow1.Closed += delegate { IsTestWindow1Opened = false; };

    testwindow1.Show();
}

1 个答案:

答案 0 :(得分:1)

我认为由于行testwindow.Owner = Window.GetWindow(this)

,TestWindow1始终位于前面

参考:https://msdn.microsoft.com/en-us/library/system.windows.window.owner(v=vs.110).aspx

编辑:添加,这是原因 "所有者窗口永远不能覆盖拥有的窗口。"