2014-03-12 80 views
1

我在WPF触摸应用程序中有一些不常见的设计问题。WPF - 使DragDrop和ManipulationEnabled共存

我有一个用户控件保持的图像,这是我允许用户自由地移动,调整大小,以及围绕触摸表面使用多点通过设置旋转:

isManipulationEnabled =真

,然后连接ManipulationStarting,ManipulationDeltaManipulationCompleted的事件。

这是一切都很好,完美的作品,但现在我想添加一个功能,用户可以将此控件拖拽到另一个具有图像文件列表的控件上的WrapPanel,并将此图像添加到列表中。

我尝试使用DragDrop事件通过在ManipulationDelta事件调用DragDrop.DoDragDrop(),但直到出现下降,这是不是我想要的锁定用户界面和控制。

有没有什么办法可以正确地做到这一点,而无需编写我自己的命中测试代码?我在VS 2013上使用WPF 4.0和.NET 4.5,我不确定在这种情况下Surface SDK是否可以帮助我(也不能正确安装/加载到VS2013)

+0

您的userControl是否从'Thumb'派生? – Bijan

+0

不是。这是一个带有主图像和几个按钮的用户控件。将使用拇指帮助? 编辑:查看拇指的WPF描述,它听起来不像我所寻找的 –

+0

拇指具有DragStarted,DragDelta和DragCompleted(所有事件)的能力。我曾经用这种方法来解决我的问题。 – Bijan

回答

0

找到我的解决方案:使用VisualTreeHelper.HitTest并在ManipulationDelta的事件处理程序中调用HitTest,然后使用您自己的逻辑处理拖动操作。使用ManipulationCompleted事件再次检查命中测试以完成删除