获得UserControl的位置

时间:2011-04-27 17:19:47

标签: c# silverlight user-controls position silverlightcontrols

我在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本身(并通过方法公开)。

1 个答案:

答案 0 :(得分:0)

根据索德的法律规定,我已经花了几个小时研究这个问题,最后我在发布问题后直接解决了这个问题。

事实证明,您必须为UserControl指定名称并引用该名称而不是this。那么,它将是ucName.TransformToVisual...。之前,我通过this方法或通过实际对象本身来引用它。