2013-03-28 114 views
1

我在我通過代碼的Silverlight 5應用程序創建一個線對象,現在我想繞其中心點這一行,但行爲很奇怪,所以該行被各地的頂級旋轉屏幕左下角,這是我的代碼:Silverlight中圍繞其中心旋轉線

    RotateTransform rotate = new RotateTransform(); 
       rotate.Angle = myArrowAngle[i] + off_x; 
       myLines[i].RenderTransformOrigin = new Point(0.5d, 0.5d); 
       myLines[i].RenderTransform = rotate; 

怎麼回事? 設置我行對象的RenderTransferOrigin,但沒有運氣,我應該改造後或旋轉前移到我的對象?這個輪換如何完成?在模型空間還是在世界空間?它似乎是在世界空間中旋轉作爲我行的左右旋轉(0,0)我的畫布,而不是它的中心點

回答

2

當您將轉換原點到0.5,0.5,你把它相對於線的「邊界框」,它不一定與線本身的中心重合。

請看下面的例子:

<Canvas> 
    <Line X1="0" Y1="50" X2="100" Y2="50" 
      StrokeThickness="4" Stroke="Red" RenderTransformOrigin="0.5,0.5"> 
     <!--<Line.RenderTransform> 
      <RotateTransform Angle="45" CenterX="0.5" CenterY="0.5" /> 
     </Line.RenderTransform>--> 
    </Line> 
</Canvas> 

Line in canvas

如果取消註釋變換,它就會從那裏的小圓圈是在該框中應用。

能解釋你正在經歷什麼?

+0

是我想,我有這樣的事情,現在我怎麼能繞其中心行? –