1

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

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

我希望能够将 ScatterViewItem 从“吊舱”拖到“表面”或另一个“吊舱”。我在检测 ScatterViewItem 是否离开其 ScatterView 父项方面没有问题。此外,重新设置 ScatterViewItem 也没有问题。

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

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

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

谢谢,巴特

4

1 回答 1

1

嗯,首先,我有一种预感,Surface 的拖放功能很快就会变得更容易,所以我不会花太多时间担心附加元素。

但更多地将其视为一个一般性问题 - 您不一定必须添加视觉元素来进行命中测试,但命中测试仍将是确定在给定点是否存在特定元素的最佳方法。

您所说的示例不仅添加了用于命中测试的椭圆,还用作“吊舱”的背景。所以他们只想在接触超过那个椭圆时处理下降,因为那个椭圆定义了边界。另一条路线可能是设置散点图的背景,并针对该控件进行命中测试。然后,如果您想将“pod”的边界更改为矩形以外的其他内容,则需要将剪切路径应用于 scatterview。

于 2009-04-07T20:50:11.583 回答