亀岡的プログラマ日記

京都のベッドタウン、亀岡よりだらだらとお送りいたします。

WPFからウィンドウハンドルを取得する方法あれこれ

イントレ。
WPFウインドウ上にXNAのビューを表示する

上記参考ページから2つほど方法があることを知った。
まず、System.Windows.Interop.WindowInteropHelperクラス。

IntPtr handle = new WindowInteropHelper(this).Handle;
//thisはWindow限定


もうひとつがHwndSorceクラス

HwndSource source = (HwndSource)HwndSource.FromVisual(this);
//thisはSystem.Media要素ならOK(Windowじゃなくても大丈夫っぽい)
IntPtr handle = source.Handle;

下のほうがWindowじゃなくても取れるのでいいかなー。