在mousemove中获取控件的位置

时间:2010-02-22 11:15:32

标签: silverlight

我有一个silverlight控件,我在按钮点击动态创建形状 这些形状可以在整个表单中拖拽。现在我想在拖动(mousemove)上获得控件的顶部和左侧位置。请帮忙

1 个答案:

答案 0 :(得分:0)

看看你的问题历史,我可以想到两种方法。我怀疑形状只是放在Canvas上,而你所说的MouseMove指的是你附加到Canvas的事件处理程序。在那个基础上。

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));