【发布时间】:2013-08-18 21:52:11
【问题描述】:
我想制作一个简单的配对游戏来帮助更好地理解运动,其中我将拥有形状的轮廓和形状本身。将形状拖到其轮廓上并释放它以使其卡入到位。听起来很简单。我可以使用 ManipulationDelta 事件移动我的形状,但由于某种原因,我无法触发任何拖动事件(DragOver、DragEnter、Drop)。我已经阅读了这些事件,但也许我的理解存在缺陷。为了知道一个形状何时被拖到另一个形状上,我要查找什么事件?
XAML
<Canvas Name="DrawCanvas">
<Ellipse Name="Shape1" Fill="SteelBlue" Height="200" Width="200" ManipulationMode="All" AllowDrop="True" DragOver="Shape1_DragOver" DragEnter="Shape2_DragEnter" Drop="Shape1_Drop"/>
<Ellipse Name="Shape2" Height="209" Width="209" Stroke="SteelBlue" StrokeThickness="5" AllowDrop="True" Canvas.Left="594" Canvas.Top="96" />
</Canvas>
我已经尝试过 Shape1 和 Shape2 上的 DragOver、DragEnter、Drop 事件的所有组合,但它们似乎从未触发过。这些事件不适用于形状吗?还是有可能在使用 ManipulationDelta 进行运动时它们不起作用?
谢谢,非常感谢您对此的任何帮助或指导。
【问题讨论】:
-
Windows8 中是否有 AllowDrop 属性?如果是这样,您应该将其设置为 true 以获取提及的事件。
-
是的。在上面的示例中,我实际上为两种形状都设置了它,有一次我什至将它放在画布本身上。
标签: c# xaml drag-and-drop windows-store-apps