Получить координаты X Y элементов в InkCanvas в WPF

У меня есть InkCanvas, дочерние элементы которого программно добавлены через C#. Они не устанавливаются с помощью InkCanvas.LeftProperty или InkCanvas.TopProperty. Мне было интересно, возможно ли вообще получить эти значения X и Y по умолчанию для элементов. В настоящее время, если я проверю InkCanvas.LeftProperty или InkCanvas.TopProperty, он вернет NaN, поскольку они не установлены. Это вообще возможно? Заранее благодарю за любую помощь.

Ваше здоровье,

Нилу


person Nilu    schedule 21.09.2009    source источник


Ответы (2)


Я думаю, что это может быть ответ:

Vector vector = VisualTreeHelper.GetOffset(element);

Он возвращает вектор со смещением элемента относительно родителя. Дополнительную информацию можно найти здесь .

Изменить: не думайте, что это поможет мне в том, что я хочу сделать. Хотя это хороший метод, если вы изначально устанавливаете поля для элементов. В моем случае, я думаю, мне нужно было бы явно указать координаты.

person Nilu    schedule 21.09.2009

Вы хотите использовать различные статические методы, определенные в Canvas, чтобы получить эти значения — GetLeft(), GetTop() и т. д. Я считаю, что LeftProperty — это просто определение самого прикрепленного свойства, а не способ получить значение.

person Andy    schedule 21.09.2009
comment
Да ты прав. Однако даже когда я использовал эти методы, значения были NaN. Однако мне удалось найти метод VisualTreeHelper, который возвращал бы смещение элемента относительно родителя (InkCanvas). Который, кажется, работает в банкомате. Спасибо за вашу помощь. :) - person Nilu; 21.09.2009