Как получить позицию в повернутом VisualTree? - PullRequest
1 голос
/ 13 марта 2012

У меня есть холст внутри холста и другие элементы внутри холста отца.Но холст моего дедушки поворачивается.

Как я могу получить реальное положение у детей (относительно дедушки)?

Ошибка:

VisualTreeHelper.GetOffset(controlClicked)
canvasGrandFather.TranslatePoint(new Point(), controlClicked)
Canvas.GetTop and Canvas.GetLeft

enter image description here

Я должен занять позицию зеленого квадрата для фонового изображения.Каждый контур / граница - это холст

В основном у меня есть: Изображениехолст--GrandFatherCanvas---- FatherCanvas------ ChildrenCanvasМне нужна позиция ChildrenCanvas относительно 1-го холста.Извини я плохо знаю английский..

1 Ответ

0 голосов
/ 13 марта 2012

Предположим, ваш 1-й холст называется firstCanvas, вы должны быть в состоянии сделать это:

Point p = firstCanvas.TranslatePoint(new Point(), controlClicked);

Или вы проходите через TransformToAncestor :

GeneralTransform t = controlClicked.TransformToAncestor(firstCanvas);
Point p = t.Transform(new Point());
...