标题几乎说明了一切,但基本上我有一个主父窗口,偶尔会打开子窗口。现在可以从Windows 7任务栏中选择一个子窗口,只有那个窗口会被带到前面。我希望找到一种方法将父窗口链接到此命令,以便在选择子窗口时,父窗口也会自动显示在前面。
我尝试在子窗口'GotFocus Focus()
BringIntoView()`方法中使用Topmost = true
和event handler, but neither seemed to make a difference. I also tried the
命令,但同样,没有快乐。有没有人见过这个或知道实现这个的方法?
这是我到目前为止所尝试过的。首先设置mainWindow
然后立即设置子窗口的逻辑是我仍然希望子窗口具有焦点,但我希望mainWindow
高于任何其他正在运行的程序(即Excel, VS等等。
private void Window_GotFocus(object sender, RoutedEventArgs e)
{
var mainWindow = Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is MainWindow) as MainWindow;
mainWindow.Topmost = true;
this.Topmost = true;
}
答案 0 :(得分:2)
我认为您正在收听错误的事件,以便在选择窗口时收到通知。在您的子窗口中订阅Activated
事件,该事件会在您在任务栏中选择窗口时通知您。从那里你可以激活()你的MainWindow。
此外,我认为如果您将父窗口设置为子窗口的所有者,您将自动获得此行为。