トップ > Tech > CSharp > WPF > ユーザーコントロールの親ウィンドウを調べる

ユーザーコントロールの親ウィンドウを調べる

ユーザーコントロールを配置していて、そのコントロールから直接新しいウィンドウを開くとき、親ウィンドウをオーナーにしてほしいが、自動では設定されない。

手動で設定するには新しいウィンドウの Owner プロパティに親ウィンドウを設定してやる必要がある。このとき問題となるのが、親ウィンドウをどうやって取得するかだ。

メインウィンドウなら

Application.Current.MainWindow

などでも取得できるが、すべてはそうもいかないので、Window.GetWindow メソッドを使う。

newWindow.Owner = Window.GetWindow(userControl);

このメソッドは引数にコントロールを渡すと、それの親ウィンドウ(ホストしているウィンドウ)を返す。 これを Owner プロパティに設定してやればばっちりだ。

(2010/09/21 14:11:07)
42145
プロフィール

Kenz Yamada(山田研二)。1984年生。大阪。ちょっとずつ好きなプログラム作ってます。 好きなものはカメラと旅行。ガジェットや身の回り、ちょっとこだわります。 詳しくは Web mixi で。

Bookmark and Share