0

在我的画布中,我有一个图像对象。我没有在其中设置源,但它有坐标和大小。标签是:

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

这就是问题所在:当我将鼠标移到它上面时,我想找到它。使用此代码:

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

除非设置了源,否则它不会找到图像。如果未设置源,则不返回图像。有谁知道为什么?这给我带来了问题。我有一些拖放代码,我希望在该图像控件上放置一些东西,但我需要知道鼠标何时在它上面。

我知道还有其他方法可以做到这一点(例如在该位置放置其他东西,例如网格或其他东西并检测它),但这不起作用。我可以想到几种可行的方法,但它们远没有那么优雅。

如果我能让上面的东西返回我的图像,那绝对是理想的。

4

2 回答 2

1

在您的代码中,您有Point point = e.GetPosition(_canvas);Th​​is 获取相对于画布的 MousePosition 坐标,但您的第二行VisualHelper.FindElementsInHostCoordinates(point,Application.Current.RootVisual)是相对于整个页面进行搜索。您需要更改其中一个或另一个,以便它们与同一控件相关。我只想改成VisualHelper.FindElementsInHostCoordinates(point,_canvas)

于 2010-06-25T14:37:59.950 回答
0

您可以<Border>在 Image 对象周围添加一个对象。

或者您可以为 mouseenter 和 mouse leave 添加事件处理程序并更改光标。

于 2010-06-25T14:39:12.883 回答