0

标题几乎说明了一切,但基本上我有一个主父窗口,它偶尔会打开子窗口。现在可以从 Windows 7 任务栏中选择一个子窗口,并且只有那个窗口会被带到前面。我希望它找到一种将父窗口链接到此命令的方法,以便在任何时候选择子窗口时,父窗口也会自动被带到前面。

我尝试在子窗口“GotFocus BringIntoView()”方法中同时使用Focus()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;

    }
4

1 回答 1

2

我认为您正在收听错误的事件,以便在选择窗口时得到通知。订阅Activated您的子窗口上的事件,该事件应该让您知道您的窗口何时在任务栏中被选中。从那里你可以激活()你的主窗口。

此外,我认为如果您将父窗口设置为子窗口的所有者,您将自动获得此行为。

于 2012-06-19T18:52:14.100 回答