2011年04月25日

WPF:マウスカーソルが、特定のコントロールの上にあるかどうかを知る

   このエントリーをはてなブックマークに追加 Clip to Evernote
WPFで、マウスカーソルが、特定のコントロールの上にあるかどうかを知る方法がわからなくてかなり悩みました。

MSDNライブラリでいろいろと調べて、VisualTreeHelper.HitTestを使えばよいことは分かったのですが、
何も表示されていないImageコントロール上に、マウスカーソルがあるかどうかをHitTestで調べようとしましたが、上手くいきません。
何も表示されていない=そこに存在していないと同じなのだから、
操作はできないということなのだと思います。

そういえば、前にも似たようなことで悩んだ記憶があります。

結局、Borderの子要素として、Imageを配置し、Borderの色をWhiteに設定すれば、
HitTesをが利用できることがわかりました。


でも、ちょっといまいちな方法だなー

それと、このメソッド Silverlightには無いんですね...
代わりに、FindElementsInHostCoordinates() メソッド が使えそうですが、 試していません。
FindElementsInHostCoordinates()メソッドは、WPFにはありません...


この記事へのコメント
私は以前、どのコントロールがフォーカスを持っているか?を調べるために、FocusManager.GetFocusedElementを使用しましたが、そういうメソッドもあるんですね。
勉強になりました。
Posted by insect at 2011年05月02日 17:59
insectさん

ご訪問bありがとうございます。お役に立てて何よりです。
Posted by Gushwell at 2011年05月02日 23:11
 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52144581