1

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

我添加了事件(为其自动创建方法)MouseLeftButtonDownMouseDown. 使用MessageBox,我已经确认当用户单击画布时会调用这些方法,但我找不到从MouseButtonEventArgs.

当我添加事件(和自动创建的方法)ManipulationStarted并且ManipulationStarting那些MessageBoxes 没有出现时。

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
}
4

1 回答 1

2

为了从 a 中获取鼠标位置,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 Input Overview中的Touch and Manipulation部分。

于 2013-01-10T08:11:44.193 回答