【问题标题】:How to Bring MainWindow to Front on Focus?如何将 MainWindow 置于焦点前面?
【发布时间】:2017-11-29 13:40:38
【问题描述】:

我正在使用 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();
}

【问题讨论】:

标签: c# wpf visual-studio xaml


【解决方案1】:

我相信由于testwindow.Owner = Window.GetWindow(this)这一行,TestWindow1 总是在前面

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

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

【讨论】:

    猜你喜欢
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2022-01-22
    相关资源
    最近更新 更多