我有一个silverlight控件c1,其中包含另一个silverlight控件c2 尝试执行以下代码时。
c1.c2.GetValue(Canvas.LeftProperty)
c1.c2.GetValue(Canvas.TopProperty)
结果始终为0。 如何获得相对于主画布的内部控件的Top和Left属性。
答案 0 :(得分:1)
您可以执行以下操作:
var transform = c2.TransformToVisual(c1);
var relativePoint = transform.Transform(new Point(0, 0));
var c2left = c1.GetValue(Canvas.LeftProperty) + relativePoint.X
var c2top = c1.GetValue(Canvas.TopProperty) + relativePoint.Y