我认为ManipulationDelta处理了任何类型的操作,但我似乎无法在WPF中工作。仅用于触摸的操作事件是否也适用于鼠标?
它从来没有击中我的断点的Starting事件。 例如:
<Button Name="Test1" Width="75" Click="State1Button_Click" Content="Test" ManipulationDelta="Expander_ManipulationDelta" ManipulationStarting="Expander_ManipulationStarting" IsManipulationEnabled="True">
<Button.RenderTransform>
<TranslateTransform />
</Button.RenderTransform>
</Button>
private void Expander_ManipulationStarting(object sender, ManipulationStartingEventArgs e)
{
e.ManipulationContainer = TheParent;
e.Mode = ManipulationModes.All;
}
private void Expander_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
TranslateTransform tt = (sender as UIElement).RenderTransform as TranslateTransform;
tt.X = e.DeltaManipulation.Translation.X;
tt.Y = e.DeltaManipulation.Translation.Y;
e.Handled = true;
}
答案 0 :(得分:1)
是的,ManipulationDelta
(以及其他操纵事件)仅来自触摸事件。
来自MSDN,Input Overview - Touch and Manipulation,部分触摸和操纵事件之间的关系:
UIElement始终可以接收触摸事件。当。。。的时候 IsManipulationEnabled属性设置为true,UIElement可以接收 触摸和操纵事件。如果TouchDown事件不是 处理(即Handled属性为false),操作 逻辑捕获元素的触摸并生成操作 事件。如果TouchDown事件中的Handled属性设置为true, 操纵逻辑不会生成操纵事件。该 下图显示了触摸事件和触摸事件之间的关系 操纵事件。
触摸和操纵事件