0

郑重声明:我是 Silverlight 和 XAML 的新手。

我试图在我的画布(或任何其他元素)中简单地显示鼠标坐标。在阅读了很多关于这个主题的内容之后,不幸的是我还没有意识到这一点。我的 Silverlight 5 项目使用 MVVM 和 Caliburn micro。

如何才能做到这一点?将不胜感激帮助实施这一点。

谢了,兄弟们。

4

3 回答 3

3

您需要更具体地了解您尝试使用的控制,但是您是否尝试过将某些东西连接到MouseMove事件?喜欢MouseMove="Handle_MouseMove"

public void Handle_MouseMove(object sender, MouseEventArgs args) 
{
    mouseVerticalPosition = args.GetPosition(null).Y;
    mouseHorizontalPosition = args.GetPosition(null).X;
}

那是你要找的吗?

如果您希望在整个画布上发生这种情况,您可以将其连接到PointerMoved

请参阅MouseEventArgs。这可以获得XY位置,并且可以与MouseUpMouseDownMouseMove事件一起使用。

于 2013-05-14T18:49:22.733 回答
0

要完成 tnw 答案:您必须在对象上开始鼠标捕获MyElement.CaptureMouse()

在处理程序方法中,您可以在MouseEventArgs上使用GetPosition ,并在参数中使用 UIElement 来获取相对坐标...

public void Handle_MouseMove(object e, MouseEventArgs f)
{
     var point = f.GetPosition(MyElement);
}
于 2013-05-15T07:35:16.683 回答
0

您必须捕获鼠标单击事件,并且可以使用一些事件处理程序来捕获位置。

private void CadLayoutRoot_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
                double point1 = e.GetPosition(bitmapCadView.UIElement).X;
                double point2 = e.GetPosition(bitmapCadView.UIElement).Y;
    }
于 2013-05-21T07:08:35.433 回答