我正在使用Silverlight和MVVM(使用Caliburn.Micro)。 我在View中创建了一个简单的矩形,如下所示:
<Rectangle x:Name="Rectangle2" cal:Message.Attach="[Event MouseMove] = [Action MouseMoved($eventArgs)]" Fill="#FFE2F5FF" HorizontalAlignment="Left" Height="220" Margin="195,43,0,0" Stroke="Black" VerticalAlignment="Top" Width="195" />
在ViewModel中我有:
public void MouseMoved(MouseEventArgs mouseEventArgs)
{
var point = mouseEventArgs.GetPosition(null);
String str = string.Format("({0}\t{1})",point.X,point.Y);
MVVMCoords = str;
}
出现的坐标是绝对的,因为我在GetPosition中放置了null。 我怎样才能使它们相对于矩形? (所以矩形的左上角是0,0) 据我了解,这可以通过ViewModel知道视图中的UIElements来完成。
谢谢, 盖