我有一个Canvas
有几个孩子,每个孩子都有一个MouseDragElementBehavior
。像这样:
MouseDragElementBehavior drag = new MouseDragElementBehavior();
drag.Attach(ellipse);
我想拖动一个孩子并在拖动后获得该孩子的新位置,所以我做了这样的事情:
double left = Canvas.GetLeft(ellipse);
double top = Canvas.GetTop(ellipse);
问题是我在拖动后总是得到相同的顶部和左边的值,好像该元素从未被拖动过一样。 我怎样才能获得元素的新位置?
答案 0 :(得分:0)
我找不到有关此行为实际如何工作的任何有用文档,但我猜它通过设置Margin而不是Canvas.Left / .Top来“移动”控件。你检查了边距,看看它们是否在变化?设置边距会更有用,因为它会扩展与Canvas之外的容器(例如Grid或StackPanel)的兼容性。