Silverlight 在mousemove中获取控件的位置

Silverlight 在mousemove中获取控件的位置,silverlight,Silverlight,我有一个silverlight控件,我在其中通过单击按钮动态创建形状 这些形状可以在窗体上拖动。现在我想在拖动控件(mousemove)时获得控件的顶部和左侧位置。请帮助查看您的问题历史,我可以想出两种方法。我怀疑该形状只是被放置在画布上,而您所说的MouseMove指的是您附加到画布上的事件处理程序。在这个基础上 void Canvas_MouseMove(object sender, MouseEventArgs e) { Type currentType = e.Origin

我有一个silverlight控件,我在其中通过单击按钮动态创建形状
这些形状可以在窗体上拖动。现在我想在拖动控件(mousemove)时获得控件的顶部和左侧位置。请帮助

查看您的问题历史,我可以想出两种方法。我怀疑该形状只是被放置在
画布上,而您所说的
MouseMove
指的是您附加到
画布上的事件处理程序。在这个基础上

void Canvas_MouseMove(object sender, MouseEventArgs e) 
{ 

    Type currentType = e.OriginalSource.GetType();

    // Make decisions based on value of currentType here 

    DependencyObject source = (DependencyObject)e.OriginalSource;
    Point p = new Point(Canvas.GetLeft(source), Canvas.GetTop(source));

} 
更通用的解决方案是使用
TransformToVisual
方法。比如:-

var transform = ((UIElement)e.OriginalSource).TransformToVisual(MyCanvas);
Point p = transform.Transform(Point(0,0));