SIlverlight:无法在画布上找到图像

时间:2010-06-25 14:31:36

标签: silverlight image canvas visualtreehelper

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

< 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)

除非设置了源,否则无法找到图像。如果未设置源,则不返回图像。有谁知道为什么?这给我带来了麻烦。我有一些拖放代码,我想在那个Image控件上放一些东西,但我需要知道什么时候鼠标在它上面。

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

如果我能够通过上述方式返回我的图像,那肯定是理想的。

2 个答案:

答案 0 :(得分:1)

在您的代码中,您有Point point = e.GetPosition(_canvas);这会获得与画布相关的MousePosition坐标,但您的第二行VisualHelper.FindElementsInHostCoordinates(point,Application.Current.RootVisual)正在搜索与整个页面相关的内容。您需要更改其中一个,以便它们与同一个控件相关。我只想改为VisualHelper.FindElementsInHostCoordinates(point,_canvas)

答案 1 :(得分:0)

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

或者您可以为mouseenter和mouse leave添加eventhandler并更改Cursor。