2

我无法在 Silverlight 的画布上获取 UserControl 的位置。通常,我会使用此代码来获取对象的位置,并且效果很好:

  GeneralTransform gt = this.TransformToVisual(Application.Current.RootVisual as UIElement);
  Point offset = gt.Transform(new Point(0, 0));
  double controlTop = offset.Y;
  double controlLeft = offset.X;

我有一个 UserControl,它有一个转换其位置的方法。当我尝试使用上面的代码获取新位置时,它只返回对象开始的初始位置。有没有办法获得以编程方式添加到主画布的 UserControl 的新位置?我已经尝试将此代码放在主页以及 UserControl 本身中(并通过方法公开它)。

4

1 回答 1

1

根据草皮定律,我已经为此工作了几个小时,我终于在发布问题后直接解决了这个问题。

事实证明,您必须给 UserControl 一个名称并引用该名称而不是this. 所以,它会是ucName.TransformToVisual...。以前,我通过this方法或通过实际对象本身来引用它。

于 2011-04-27T17:25:13.380 回答