我有一个带.NET-4.5的WPF Canvas。
我添加了事件(自动处理的方法)MouseLeftButtonDown
和MouseDown
。使用MessageBox
,我确认当用户点击画布时调用这些方法,但我找不到从MouseButtonEventArgs
获取鼠标位置的方法。
当我添加事件(以及自动处理的方法)ManipulationStarted
和ManipulationStarting
时,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
}
答案 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部分。