wpf Image 转 90 度
在WPF中旋转Image
控件90度,可通过以下两种主流方法实现:
1. 使用BitmapImage.Rotation
属性(静态旋转)
直接在XAML或代码中设置图像的旋转属性,适用于加载时固定角度的旋转。
XAML实现示例:
<Image Width="150"><Image.Source><BitmapImage UriSource="/sample.jpg" Rotation="Rotate90" /></Image.Source>
</Image>
C#代码实现:
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri("pack://application:,,/sample.jpg");
bi.Rotation = Rotation.Rotate90; // 支持Rotate90/180/270
bi.EndInit();
imageControl.Source = bi;
特点:
- 仅支持90度的倍数旋转(90/180/270)。
- 旋转在图像解码阶段完成,性能更优。
2. 使用RotateTransform
类(动态旋转)
通过变换(Transform)实现灵活旋转,支持任意角度和运行时调整。
XAML实现:
<Image Source="sample.jpg"><Image.RenderTransform><RotateTransform Angle="90" CenterX="0.5" CenterY="0.5" /></Image.RenderTransform>
</Image>
C#代码动态旋转:
RotateTransform rotateTransform = new RotateTransform(90);
rotateTransform.CenterX = imageControl.ActualWidth / 2; // 设置旋转中心为图像中点
rotateTransform.CenterY = imageControl.ActualHeight / 2;
imageControl.RenderTransform = rotateTransform;
特点:
- 支持任意角度(如45度)和动画效果。
- 需手动设置
CenterX/Y
控制旋转中心(默认左上角)。
选择建议:
- 静态旋转:优先使用
BitmapImage.Rotation
,性能更佳。 - 动态效果:选择
RotateTransform
,可结合Storyboard
实现动画。