[Windows] WPFでHandleを取得する方法

Windows Formsでは個々の部品はWindowになっていて、それぞれがhandleを持っている。
WPFはWindows Formsと異なり、ボタンなどのコントロールはWindowsハンドルを持たない。
調べてみたところ、Microsoftのcode resipeに以下の説明があった。

[C#/XAML] ウィンドウ ハンドルを使う (Windows フォームから WPF へ)

application自身の windowのhandleはWindowInteropHelper.Handle プロパティで得ることができる。

WindowInteropHelper.Handleの説明:
http://msdn.microsoft.com/en-us/library/system.windows.interop.windowinterophelper.handle.aspx

使ってみると、WPFのコントロールをWindowに見立ててハンドルを取ることはできず、アプリケーションウィンドウのハンドルが返ってくるようだ。

COMを使ったプログラムを作る必要があるときには、こういう互換性を保つ方法が有用なこともある。

広告

コメントを残す

コメントを投稿するには、以下のいずれかでログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。