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