首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测表面接触是否通过ScatterView?

如何检测表面接触是否通过ScatterView?
EN

Stack Overflow用户
提问于 2009-04-05 16:17:29
回答 1查看 702关注 0票数 1

这(某种程度上)与MS Surface的SDK示例购物车中的情况类似。

我有一个具有两个ScatterViews的应用程序。第一个覆盖了完整的表面窗口(“表面”)。第二个驻留在一个TagVisualization对象('pod')中。可能有多个pod可用(如果桌面上有多个标签)。

我希望能够将ScatterViewItem从“pod”拖动到“surface”或另一个“pod”。我在检测ScatterViewItem是否离开它的ScatterView父节点时没有任何问题。此外,重新设置ScatterViewItem的父关系没有问题。

但是,我想要检测项目被拖放在哪个ScatterView上。在SDK示例中,他们使用了一个位于ScatterViews之下的可视元素(在本例中是一个椭圆)。VisualTreeHelper.HitTest用于确定接触是否在椭圆上。如果是,则找到“已连接”的ScatterView。

我不认为这是一个非常优雅的解决方案。我不希望在其中添加视觉元素,只是为了检测联系人是否通过ScatterView。

有没有更好的方法来完成这种“点击测试”?

谢谢,巴特

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-04-07 20:50:12

首先,我有一种预感,用Surface拖放很快就会变得容易很多,所以我不会花太多时间为一个额外的元素而烦恼。

但是把这当作一个一般性的问题-你不一定要添加一个视觉元素来做点击测试,但点击测试仍然是确定在给定的点上是否有特定元素的最好方法。

您正在讨论的示例不仅仅是添加了用于点击测试的椭圆,它还用作'pod‘的背景。所以他们只想在触点在那个椭圆上时处理下降,因为那个椭圆定义了边界。另一种方法可能是设置散点视图的背景,并对该控件执行hittest。然后,如果你想把“pod”的边界改成矩形以外的东西,你就需要对散点视图应用一个剪切路径。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/719218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档