WPF: Viewbox и TranslatePoint - PullRequest
       17

WPF: Viewbox и TranslatePoint

3 голосов
/ 23 марта 2010
  1. У меня есть Viewbox с Canvas Child,
  2. У меня есть свойство Stretch Viewbox to Fill,
  3. Я изменил ширину и высоту окна просмотра,
  4. Мне нужно узнать местоположение детей в Canvas относительно родителя Viewbox. Я попробовал:

    Point p = viewboxInstance.TranslatePoint (новая точка (Canvas.GetLeft (child), Canvas.GetTop (child)), viewboxInstanceParent);

он получает неправильные координаты! Есть решение или обход?

Спасибо

1 Ответ

1 голос
/ 23 марта 2010

ViewBox не изменяет никаких свойств своих дочерних элементов, включая Canvas левое и верхнее значения. Вам необходимо использовать фактические координаты дочернего элемента, а не только значения вложенных свойств.

Вы можете позвонить TranslatePoint непосредственно на ребенка, если это UIElement. Чтобы сослаться на верхнюю левую точку дочернего элемента, вы можете использовать (0, 0), который является значением по умолчанию для Point, поэтому достаточно new Point().

        Point p = child.TranslatePoint(new Point(), viewboxInstanceParent);

удачи,

EDIT: Вот видео этого кода в действии: ViewboxChildPosition

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...