Получение позиции 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
метод или через сам фактический объект.