在 WPF 中从元素上的操纵器和子元素上未处理的操纵器旋转和缩放

问题描述 投票:0回答:0

我在

UserControl
中有一个自定义
Grid
,两者都带有
IsManipulationEnabled = true
UserControl
(的某些部分)的单指操作应适用于
UserControl
(翻译这些部分),但多点触摸输入(和未处理的单点触摸输入)应该平移,旋转和缩放背景
 Grid
代替。我目前尝试的解决方案是在
IsHitTestVisible = false
上设置
ManipulationDeltaEventArgs.IsHandled
(或不设置
IsManpulationEnabled = false
,或设置
UserControl
),同时在
Grid
上检测到至少一次触摸。

我的问题是,如果我在同一操作中将一根手指放在

UserControl
上,然后将另一根手指放在背景
Grid
上,他们每个人都会得到一个
ManipulationStarting
事件,每个事件都有一个操纵器;然后,当
UserControl
不再处理
ManipulationDelta
时,
Grid
从两者接收
ManipulationDelta
,具有不同的
ManipulationOrigin
值,并且每个仍然有一个操纵器,因此旋转和缩放是不可能的。

当我无法使用两个操纵器获得统一的

ManipulationDelta
事件时,如何使用多点触控变换?有什么方法可以将它们结合起来吗?还是我必须区分和跟踪它们并手动计算转换?

.net wpf event-handling touch multi-touch
© www.soinside.com 2019 - 2024. All rights reserved.