3

これは、次の状況にある場合に発生する問題です。 - アプリケーションにメイン ウィンドウがある - タスク バーに表示されない、ツール ウィンドウである別のウィンドウを作成します。- 2 番目のウィンドウを (メイン ウィンドウから) ダイアログ ウィンドウとして表示します - システムで実行中の別のアプリケーションに切り替え、アプリケーションに戻るとメイン ウィンドウが表示されますが、2 番目のウィンドウによってロックされています。それは示されていません。

これは 2 番目のウィンドウのコードです。

<Window x:Class="WpfApplication1.DialogWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="DialogWindow" Height="300" Width="300" WindowStartupLocation="CenterScreen" WindowStyle="ToolWindow" ShowInTaskbar="False">
   <!--Some content-->
</Windows>

これは、2 番目のウィンドウを表示するコードです。

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        var dialogWindow = new DialogWindow();
        dialogWindow.ShowDialog();
    }

この問題を解決するにはどうすればよいですか?タスク バーに表示されないダイアログ ウィンドウが引き続き表示されますか?

4

2 に答える 2

6

DialogWindow.Ownerプロパティを親ウィンドウに設定する必要があると思います。この回答を参照してくださいWPF: How do I set the Owner Window of a Dialog shown by a UserControl?

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    var dialogWindow = new DialogWindow();
    dialogWindow.Owner = Window.GetWindow(this)
    dialogWindow.ShowDialog();
}

これDialogWindowにより、常に親の前にモーダルが配置されます。

于 2012-11-14T19:35:28.937 に答える
0

TopMost=Trueダイアログウィンドウに設定します。

于 2012-11-14T19:33:19.510 に答える