Silverlight 如何确定图元相对于父图元中心的位置
我知道我可以通过以下代码获得元素相对于其父元素的位置:Silverlight 如何确定图元相对于父图元中心的位置,silverlight,Silverlight,我知道我可以通过以下代码获得元素相对于其父元素的位置: var generalTransform = childElement.TransformToVisual( parentElement ); var childToParentCoordinates = generalTransform.Transform( new Point( 0, 0 ) ); 我意识到如果孩子在父母的左边或上面,x和y都是负数 然而,我需要的是孩子中心相对于家长中心的点,这样家长中心被认为是(0,0)点。因此,位
var generalTransform = childElement.TransformToVisual( parentElement );
var childToParentCoordinates = generalTransform.Transform( new Point( 0, 0 ) );
我意识到如果孩子在父母的左边或上面,x和y都是负数
然而,我需要的是孩子中心相对于家长中心的点,这样家长中心被认为是(0,0)点
。因此,位于其父对象中心上方和左侧的对象将是(负,负)点
,而右侧和下方的对象显然是(正,正)点
Point relativePoint = child.TransformToAncestor(parent)
.Transform(new Point(0, 0));
Point parentCenter = new Point(parent.ActualWidth / 2, parent.ActualHeight / 2);
Point childCenter = new Point(relativePoint.X + (child.ActualWidth / 2), relativePoint.Y + (child.ActualHeight / 2));
//Now you can compare them as you want
我希望这会有所帮助。考虑一下,要将左上角坐标转换为中心坐标,您需要做的就是添加大小/2。