Получение позиции UserControl

У меня проблемы с получением позиции UserControl на холсте в Silverlight. Обычно я использовал бы этот код, чтобы получить положение объекта, и он отлично работает:

  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 ответ

Решение

Как гласит закон дерьма, я работал над этим пару часов и, наконец, решил его сразу после публикации вопроса.

Оказывается, вы должны дать UserControl имя и ссылаться на это имя вместо this, Итак, было бы ucName.TransformToVisual..., Раньше я ссылался на это либо this метод или через сам фактический объект.

Другие вопросы по тегам