1
我具有正方形400×400与连接到它Silverlight中使用平面投影当转换坐标系统3
<Rectangle x:Name="Ground" Width="400" Height="400" Stroke="Black" VerticalAlignment="Bottom" Canvas.Left="60" Canvas.Top="50" >
<Rectangle.Fill>
<ImageBrush ImageSource="_images/grass.jpg"/>
</Rectangle.Fill>
<Rectangle.Projection>
<PlaneProjection x:Name="GroundPlaneProjection" CenterOfRotationZ="0" GlobalOffsetX="0" GlobalOffsetY="0" GlobalOffsetZ="0" LocalOffsetX="0" LocalOffsetY="0" LocalOffsetZ="0" RotationX="120" RotationY="-40" RotationZ="25"/>
</Rectangle.Projection>
</Rectangle>
一个平面上的投影如何将确定的边界的方变换以便对象置于其上会不会出界?
感谢您的回复。在发布之前,我已经尝试过这种方法,但我可能做错了。 GeneralTransform transform = control.TransformToVisual(Ground); Point coordinates = transform.Transform(new Point(Ground.Margin.Left + Ground.Width,Ground.Margin.Top + Ground.Height));所以在理论上应该给我一个点在转换后的Rectangle的右下角,但它不会。我想知道是否需要将矩形转换为包含矩形的画布。我会试试看看。 – 2009-09-01 00:54:33
如果你想得到相对于某个面板(比如“LayoutRoot”)的“Ground”的右下角,你应该这样做: var transform = Ground.TransformToVisual(LayoutRoot); var point = transform.Transform(new Point(Ground.Width,Ground.Height); – KeithMahoney 2009-09-01 17:18:08