順時針旋轉角度爲360
度。這意味着25
度將它移動到約1點的位置。如果你想指向右側,那將是90度。直下會是180度。
有意義嗎?看看這個:
下面是一些代碼,以幫助你測試:
<StackPanel Width="200" Margin="0,50">
<Grid Width="100" Height="100" Background="SteelBlue" RenderTransformOrigin=".5,.5">
<UIElement.RenderTransform>
<RotateTransform Angle="{Binding Value, ElementName=MySlider}" />
</UIElement.RenderTransform>
<Line HorizontalAlignment="Center" VerticalAlignment="Top"
Stroke="Goldenrod" StrokeThickness="4"
X1="2" X2="2"
Y1="0" Y2="40" />
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White">
<Run Text="{Binding Value, ElementName=MySlider}" />
<Run Text="degrees" />
</TextBlock>
</Grid>
<Slider x:Name="MySlider" Maximum="360" Minimum="0" Value="25" />
</StackPanel>
確保並注意RenderTransformOrigin=".5,.5"
位。這對你來說非常重要,因爲它決定了旋轉軸的位置。值爲0到1.所以0,0
基本上是左上角,而1,1
是右下角。這使得.5,.5
在中間。
祝你好運!
所以難道你不能從結果中推導出它嗎?它由「角度」按順時針旋轉。 *它沒有像我期望的那樣移動太多* - >因此請嘗試增加角度。 –
首先,'myImage.RenderTransform = transform;'這一行是多餘的,因爲您正在設置已經存在的變換的Angle屬性。默認情況下,旋轉是在左上角。爲了改變這種情況,你可以在相對座標中設置元素的'RenderTransformOrigin'(例如中心的(0.5,0.5)),或者你可以在絕對座標中設置RotateTransform的'CenterX'和'CenterY'屬性。 – Clemens