ManipulationDelta事件仅​​适用于触摸输入吗?

时间:2014-08-07 20:32:28

标签: c# wpf xaml

我认为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;
    }

1 个答案:

答案 0 :(得分:1)

是的,ManipulationDelta(以及其他操纵事件)仅来自触摸事件。

来自MSDN,Input Overview - Touch and Manipulation,部分触摸和操纵事件之间的关系

  

UIElement始终可以接收触摸事件。当。。。的时候   IsManipulationEnabled属性设置为true,UIElement可以接收   触摸和操纵事件。如果TouchDown事件不是   处理(即Handled属性为false),操作   逻辑捕获元素的触摸并生成操作   事件。如果TouchDown事件中的Handled属性设置为true,   操纵逻辑不会生成操纵事件。该   下图显示了触摸事件和触摸事件之间的关系   操纵事件。

     

触摸和操纵事件

enter image description here