2

我家有Canvas几个孩子,每个孩子都有一个MouseDragElementBehavior。像这样的东西:

MouseDragElementBehavior drag = new MouseDragElementBehavior();
drag.Attach(ellipse);

我想拖动一个孩子并在拖动后获得该孩子的新位置,所以我做了这样的事情:

double left = Canvas.GetLeft(ellipse);
double top  = Canvas.GetTop(ellipse);

问题是我总是在拖动后得到相同的顶部和左侧值,就好像元素从未被拖动过一样。如何获得元素的新位置?

4

1 回答 1

0

我找不到任何关于此行为实际如何工作的有用文档,但我猜它通过设置边距而不是 Canvas.Left/.Top 来“移动”控件。您是否检查了边距以查看它们是否正在更改?设置 Margin 会更有用,因为它会将兼容性扩展到 Canvas 以外的容器(例如 Grid 或 StackPanel)。

于 2012-07-04T04:13:32.053 回答