有几个事件处理操纵(从而进行拖放):
- 操纵启动
- 操作已开始
- 操纵增量
- 操纵内部启动
- 操作完成
在ManipulationStarting事件中,事件参数(类型ManipulationStartingRoutedEventArgs)允许我将Mode属性设置为ManipulationModes。无——这意味着不允许操纵,因此不允许拖动,这是正确的吗;滴
我这么问是因为我在玩官方XAML用户输入事件示例应用程序时遇到了一种奇怪的行为,尤其是在场景4(拖放)中。
只需将"模式"设置为"操纵模式"。Scenario4.xaml.cs:的ManipulationStarting事件中无
void ManipulateMe_ManipulationStarting(object sender, ManipulationStartingRoutedEventArgs e)
{
forceManipulationsToEnd = false;
e.Mode = ManipulationModes.None; // <-- this is new
e.Handled = true;
}
尽管如此,每隔三次拖动,我就可以拖动矩形。我录制了一段视频来演示这一点:http://www.youtube.com/watch?v=psytuTailHg.
这个问题不仅出现在这个示例中,而且出现在我自己的应用程序中。
问题:
- 为什么会有这样奇怪的行为
- 取消拖动的最佳方式是什么;drop事件(例如,如果不满足某些条件)
例如,在网格视图上,您可以实现DragItemStarting事件,并设置e.Cancel = true;
以防止这种行为-这不符合您的需求吗?