郑重声明:我是 Silverlight 和 XAML 的新手。
我试图在我的画布(或任何其他元素)中简单地显示鼠标坐标。在阅读了很多关于这个主题的内容之后,不幸的是我还没有意识到这一点。我的 Silverlight 5 项目使用 MVVM 和 Caliburn micro。
如何才能做到这一点?将不胜感激帮助实施这一点。
谢了,兄弟们。
郑重声明:我是 Silverlight 和 XAML 的新手。
我试图在我的画布(或任何其他元素)中简单地显示鼠标坐标。在阅读了很多关于这个主题的内容之后,不幸的是我还没有意识到这一点。我的 Silverlight 5 项目使用 MVVM 和 Caliburn micro。
如何才能做到这一点?将不胜感激帮助实施这一点。
谢了,兄弟们。
您需要更具体地了解您尝试使用的控制,但是您是否尝试过将某些东西连接到MouseMove
事件?喜欢MouseMove="Handle_MouseMove"
public void Handle_MouseMove(object sender, MouseEventArgs args)
{
mouseVerticalPosition = args.GetPosition(null).Y;
mouseHorizontalPosition = args.GetPosition(null).X;
}
那是你要找的吗?
如果您希望在整个画布上发生这种情况,您可以将其连接到PointerMoved
请参阅MouseEventArgs。这可以获得X
和Y
位置,并且可以与MouseUp
、MouseDown
和MouseMove
事件一起使用。
要完成 tnw 答案:您必须在对象上开始鼠标捕获:MyElement.CaptureMouse()
在处理程序方法中,您可以在MouseEventArgs上使用GetPosition ,并在参数中使用 UIElement 来获取相对坐标...
public void Handle_MouseMove(object e, MouseEventArgs f)
{
var point = f.GetPosition(MyElement);
}
您必须捕获鼠标单击事件,并且可以使用一些事件处理程序来捕获位置。
private void CadLayoutRoot_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
double point1 = e.GetPosition(bitmapCadView.UIElement).X;
double point2 = e.GetPosition(bitmapCadView.UIElement).Y;
}