我对这个话题真的很困惑。我发现的教程中没有一个可以在触摸输入时移动对象。例如,他们都做这样的事情:
Control.AddHandler(UIElement.ManipulationStartedEvent, new EventHandler
<ManipulationStartedEventArgs>(Control_ManipulationStarted), true);
但是没有ManipulationStartedEventArgs,VS2013找不到它,也没有办法添加使用指令。这些教程是否过时,MS是否改变了ManipulationDelta的工作方式?
再次使用"属性"部分的"事件处理程序"部分添加它不起作用,无论我尝试做什么,都不会触发任何事件。
为了使操作正常工作,UI 元素必须将 ManipulationMode 属性设置为 None
或System
以外的其他属性才能成为操作事件源;即,如果您希望事件在水平指针移动时触发,请将ManipulationMode
设置为 TranslateX
。
对于 Windows 通用中的 UI 操作,您有 3 个事件:
- 操作已开始
- 操纵三角洲
- 操作已完成
每个命名空间下都有自己的 EventArg System.Windows.Input
- ManipulationStartedEventArgs
- ManipulationDeltaEventArgs
- ManipulationCompleteEventArgs
但是,问题可能出在您使用的 UI 元素的类型上,而不是所有接受/生成操作事件。
不这样做的 UI 元素示例:
-
WebView
-
(我希望
Canvas
但不确定,没有测试过)
具有以下功能的 UI 元素示例:
-
Textblock
-
ListView