2009-10-05 75 views
1

我正在为Microsoft Surface开发一个应用程序,并且Im试图最大限度地利用那些库,功能Im如果能够轻弹UI元素。WPF沿路径滑动(Surface)

ScatterView控件使得这很简单,但我想限制UI元素只能沿着设置路径轻弹。这是我遇到麻烦的地方。

所以我的问题是:

1)你可以限制为只可沿路径轻弹一个ScatterViewItem? 2)如果不是,您将如何实现轻弹手势以沿着设定路径轻弹UI元素?

谢谢!

马克

回答

3

1)不,我知道的,这可能不是接近它的最佳方式。

2)假设你有想要弹开的对象和设计时的路径,我以前通过创建一个时间轴动画来实现沿着路径拖动和滑动,该动画表示整个路径上的移动。在运行时,我捕获该对象上的联系人,将它们提供给Affine2DManipulationProcessor,并根据操作事件查找动画。

所以在我的情况下,我创建了一个抽屉。当用户触摸抽屉时,我开始动画并立即暂停。如果用户将其拖动打开,我会根据操作处理器告诉我他们移动的距离向前寻找适当的动画数量。

要获得轻弹行为,您只需将处理转交给Affine2DInertiaProcessor并继续处理增量事件。

这一切工作出人意料地很好。

+0

感谢本,这是一个很好的答案,我想只要你计算正确,动画类就可以正常工作。因为它可以给使用者带来不自然的感觉,所以我没有使用它。 – Mark 2009-10-05 21:34:16