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实现动画。
相关推荐
samble5 天前
从零搭建灌装监控系统(四):深色主题与样式系统,ResourceDictionary 统一管理
c#·wpf·mvvm·样式·工业控制
_Jonas5 天前
.net framework开发环境正式环境配置文件的切换
.net·wpf
dalong107 天前
WPF:Modbus 状态监控
wpf·modbus
He BianGu7 天前
【WPF-VisionMaster】机器视觉通用平台V5.0版本发行说明
opencv·c#·wpf·halcon·机器视觉·visionmaster
fogota10 天前
Emoji与Segoe MDL2 Assets的比较
c#·wpf
fogota11 天前
C# WPF 按钮加载字体图标 / 动物头像
c#·.net·wpf
fogota11 天前
C# WPF 按钮加载系统图标 / 动物头像
c#·.net·wpf
军训猫猫头11 天前
C# 封装 MySQL 自动写入与查询工具类(基于 MySqlConnector)
mysql·c#·.net·wpf
gis开发之家12 天前
Spring Boot 4 定时任务与异步线程池:从 @Scheduled 到高并发任务编排(生产级实战)
java·spring boot·后端·wpf·spring boot4
clz131452113 天前
如何设计一个优雅可靠的金融级联机接口
wpf