0

私のキャンバスには、画像オブジェクトがあります。ソースは設定していませんが、座標とサイズがあります。タグは次のとおりです。

<Image Canvas.Top="50" Canvas.Left="20" Height="68" Width="110" Horizo​​ntalAlignment="Left" Name="image1" Stretch="Fill" VerticalAlignment="Top" />

ここに問題があります。マウスをその上に移動すると、それを見つけたいと思います。このコードで:

VisualTreeHelper.FindElementsInHostCoordinates(point, Application.Current.RootVisual)

ソースが設定されていない限り、画像は見つかりません。ソースが設定されていない場合、画像は返されません。誰かが理由を知っていますか?これは私に問題を引き起こしています。いくつかのドラッグ アンド ドロップ コードがあり、そのイメージ コントロールに何かをドロップしようとしていますが、マウスがいつその上にあるかを知る必要があります。

私はそれを行うことができる他の方法があることを知っています(グリッドなどのような別のものをその場所に配置してそれを検出するなど)が、それはうまくいきません。うまくいくいくつかの方法を考えることができますが、それらははるかにエレガントではありません.

上記で画像を返すことができれば、それは間違いなく理想的です。

4

2 に答える 2

1

コードではPoint point = e.GetPosition(_canvas);、これはキャンバスに関連して MousePosition 座標を取得しますが、2行目VisualHelper.FindElementsInHostCoordinates(point,Application.Current.RootVisual)はページ全体に関連して検索しています。同じコントロールに関連するように、どちらか一方を変更する必要があります。私はちょうどに変更しますVisualHelper.FindElementsInHostCoordinates(point,_canvas)

于 2010-06-25T14:37:59.950 に答える
0

<Border>Image オブジェクトの周りにオブジェクトを追加できます。

または、mouseenter と mouse leave のイベント ハンドラを追加して、Cursor を変更することもできます。

于 2010-06-25T14:39:12.883 に答える