3

wpf アプリケーションに表示されるすべてのウィンドウの所有者を変更すると、「ダイアログが表示された後に所有者プロパティを設定できません」という例外が発生することがあります。

コード

foreach (Window vAlarmWindow in Application.Current.Windows)
{
    if (vAlarmWindow is AlarmWindow && this != vAlarmWindow.Owner && !vAlarmWindow.IsLoaded)
    {
        vAlarmWindow.Owner = this;
    }
}   

その理由は何ですか?

4

1 に答える 1

3

ほとんどの場合AlarmWindow、そのリストにはすでに表示されて閉じられているものがあります。がWindow閉じられると、アンロードされます。
残念ながら、Windowクラスには、表示されて閉じられているかどうかを示すプロパティはありません。そのためには、Window.Closedイベントを処理し、AlarmWindowクラスにいくつかのプロパティを設定する必要があります

于 2013-05-24T08:29:41.523 に答える