首页 文章

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

提问于
浏览
0

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

<Image Canvas.Top =“50”Canvas.Left =“20”Height =“68”Width =“110”HorizontalAlignment =“Left”Name =“image1”Stretch =“Fill”VerticalAlignment =“Top”/>

问题在于:当我将鼠标移到它上面时,我想找到它 . 使用此代码:

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

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

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

如果我能得到上面的回报我的形象,那肯定是理想的 .

2 回答

  • 0

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

  • 1

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

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

相关问题