我有一个图像控制旋转问题(WPF)。
我的宽度为500px& 300px高度照片。 当我将这张照片放在一个图像控件中时:
<window>
<grid>
<Border BorderBrush="Green" BorderThickness="4" Margin="20" VerticalAlignment="Center" HorizontalAlignment="Center">
<Image Source="test.bmp"/>
</Border>
</grid>
</window>
它看起来不错,边框会根据图像的大小自动调整大小:500x300。
现在我想将图像旋转90度:
<window>
<grid>
<Border BorderBrush="Green" BorderThickness="4" Margin="20" VerticalAlignment="Center" HorizontalAlignment="Center">
<Image Source="test.bmp" RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Border>
</grid>
</window>
我的想法是,边框大小也会从500x300变为300x500。
但实际上它不是 - 仍然是500x300,而且图像控制也可以保持500x300的位置。
我的问题是,如何解决这个问题?
[更新:已解决]
我使用LayoutTransform而不是RenderTransform:
<window>
<grid>
<Border BorderBrush="Green" BorderThickness="4" Margin="20" VerticalAlignment="Center" HorizontalAlignment="Center">
<Image Source="test.bmp" >
<Image.LayoutTransform>
<RotateTransform Angle="90"/>
</Image.LayoutTransform>
</Image>
</Border>
</grid>
</window>