更改 UIElement 的角度
Changing the angle of a UIElement
我有这个代码:
RotateTransform transform = myImage.RenderTransform as RotateTransform;
transform.Angle = 25.0;
myImage.RenderTransform = transform;
它设置了我的 Image
元素的 Angle
.. 它有效,但是它并没有像我预期的那样移动太多。
我只是想知道 Angle
是不是根据图像的右上角设置的?那么,它是否将图像从图像的右侧旋转 25 度?
旋转角度为顺时针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
基本上是 top/left 而 1,1
是 bottom/right。这使得 .5,.5
落在中间。
祝你好运!
我有这个代码:
RotateTransform transform = myImage.RenderTransform as RotateTransform;
transform.Angle = 25.0;
myImage.RenderTransform = transform;
它设置了我的 Image
元素的 Angle
.. 它有效,但是它并没有像我预期的那样移动太多。
我只是想知道 Angle
是不是根据图像的右上角设置的?那么,它是否将图像从图像的右侧旋转 25 度?
旋转角度为顺时针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
基本上是 top/left 而 1,1
是 bottom/right。这使得 .5,.5
落在中间。
祝你好运!