wpfに次のような例外メッセージがあります。
- 以前に表示されていないWindowにOwnerプロパティを設定することはできません。
InvalidOperationExceptionのメッセージです。 こんなコードで再現できます。
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Window w = new Window(); w.Owner = this; w.Show(); } }
「子Windowが表示されてからしかOwnerが設定できないのか? イベントの追加とか親Windowの参照の受け渡しとか、微妙に面倒だなぁ...」 と、思っていたら違うようです。 そういえば、前の投稿で
AppConfigWindow confWindow = new AppConfigWindow(); confWindow.Owner = this; confWindow.ShowDialog()
ってのが通ってましたしね。
英語版の例外メッセージはこんな文章らしいです。
- Cannot set Owner property to a Window that has not been shown previously.
意訳すると、
- まだ表示されていないWindowを他のWindowのOwnerプロパティに設定することはできません。
...なんて言ったらいいんでしょう? とりあえず、SourceInitializedイベント以降ならこの例外は出ないようです。