ManipulationStarted无法激活回调方法

时间:2013-01-10 03:00:20

标签: wpf mouseevent .net-4.5

我有一个带.NET-4.5的WPF Canvas。

我添加了事件(自动处理的方法)MouseLeftButtonDownMouseDown。使用MessageBox,我确认当用户点击画布时调用这些方法,但我找不到从MouseButtonEventArgs获取鼠标位置的方法。

当我添加事件(以及自动处理的方法)ManipulationStartedManipulationStarting时,MessageBox es不显示。

private void CenterCanvas_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
        MessageBox.Show("Doesn't show up");   // never shows up
}

private void CenterCanvas_MouseDown(object sender, MouseButtonEventArgs e)
{
        MessageBox.Show("Shows up");   // shows up, but can't seem to get click position
}

1 个答案:

答案 0 :(得分:2)

要从MouseEventArgs获取鼠标位置,您必须调用GetPosition方法。

private void Canvas_MouseDown(object sender, MouseButtonEventArgs e)
{
    var pos = e.GetPosition((IInputElement)sender);

    System.Diagnostics.Trace.TraceInformation("MouseDown at {0}", pos);
}

要获取操纵事件,您需要将IsManipulationEnabled设置为true。您可能需要查看MSDN Touch and Manipulation中的Input Overview部分。