一、获取某个元素相对另一元素的相对位置
1、使用TransformToVisual获取某个元素相对于另外一个元素的偏移量。
例如:要获得rect相对于LayoutRoot的偏移量,就将LayoutRoot作为参数传进去,然后针对0,0这个点做一个transform:
Point translate = this.rect.TransformToVisual(this.LayoutRoot).Transform(new Point(, ));
之后就可以在e.ManipulationOrigin的基础上加上这个偏移量了:
x += translate.X;
y += translate.Y;
在更高级一点的场合中,你还可以将TransformToVisual的结果转换成一个MatrixTransform,从而获得变换矩阵。
请参考http://msdn.microsoft.com/en-us/library/system.windows.uielement.transformtovisual(v=VS.95).aspx