如何在旋转的VisualTree中获得位置?

时间:2012-03-13 14:48:08

标签: wpf canvas tree element rotation

我在画布里面有画布,画布父亲里面有其他元素。 但我祖父的画布已经旋转了。

我如何在儿童中获得真正的位置(亲戚做爷爷)?

故障:

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

enter image description here

我必须采取绿色方块的位置,作为背景图像。 每个轮廓/边框都是画布

基本上我有: 图像
帆布
--GrandFatherCanvas
---- FatherCanvas
------ ChildrenCanvas
我需要与第一画布相关的ChildrenCanvas位置。对不起我的英语不好..

1 个答案:

答案 0 :(得分:0)

假设您的第一个画布名为firstCanvas,您应该能够这样做:

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

或者您通过TransformToAncestor

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