0

タイトルがすべてを物語っていますが、基本的に私はメインの親ウィンドウを持っており、それが時折子ウィンドウを開きます。現在、Windows 7 のタスクバーから子ウィンドウの 1 つを選択することができ、そのウィンドウのみが最前面に表示されます。親ウィンドウをこのコマンドにリンクする方法を見つけて、子ウィンドウが選択されるたびに親も自動的に前面に表示されるようにしたいと思います。

子ウィンドウの '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タスクバーでウィンドウが選択されたときに通知する子ウィンドウのイベントをサブスクライブします。そこから、Activate() MainWindow を実行できます。

さらに、親ウィンドウを子ウィンドウの所有者に設定すると、この動作が自動的に得られると思います。

于 2012-06-19T18:52:14.100 に答える