我有一个带有几个 child 的 Canvas
,每个 child 都有一个 MouseDragElementBehavior
附加。像这样:
MouseDragElementBehavior drag = new MouseDragElementBehavior();
drag.Attach(ellipse);
我想拖动一个 child 并在拖动后获得那个 child 的新位置,所以我做了这样的事情:
double left = Canvas.GetLeft(ellipse);
double top = Canvas.GetTop(ellipse);
问题是我总是在拖动后获得相同的顶部和左侧值,就好像元素从未被拖动过一样。 我怎样才能得到元素的新位置?
最佳答案
我找不到任何关于此行为实际如何工作的有用文档,但我猜它是通过设置边距而不是 Canvas.Left/.Top 来“移动”控件。您是否检查过边距以查看它们是否在变化?设置 Margin 会更有用,因为它会将兼容性扩展到 Canvas 以外的容器(例如 Grid 或 StackPanel)。
关于c# - 拖动后获取 Canvas 子元素的位置。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11317734/