在Silverlight 5,MVVM中显示鼠标位置

时间:2013-05-14 18:44:03

标签: c# .net silverlight mvvm mousemove

记录:我是Silverlight和XAML的新手。

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

如何做到这一点? 会对实施这项工作表示赞赏。

谢谢, 盖

3 个答案:

答案 0 :(得分:2)

您需要更加具体地了解您尝试使用的控件,但是您是否尝试过将某些内容连接到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事件一起使用。

答案 1 :(得分:0)

完成tnw答案:您必须start mouse capture on objectMyElement.CaptureMouse()

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

public void Handle_MouseMove(object e, MouseEventArgs f)
{
     var point = f.GetPosition(MyElement);
}

答案 2 :(得分:0)

你必须抓住鼠标点击事件,并且有一些事件处理程序可以用它来捕获位置。

private void CadLayoutRoot_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
                double point1 = e.GetPosition(bitmapCadView.UIElement).X;
                double point2 = e.GetPosition(bitmapCadView.UIElement).Y;
    }