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