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实现动画。
相关推荐
听麟3 小时前
HarmonyOS 6.0+ APP AR文旅导览系统开发实战:空间定位与文物交互落地
人工智能·深度学习·华为·ar·wpf·harmonyos
聆风吟º17 小时前
CANN hccl 深度解析:异构计算集群通信库的跨节点通信与资源管控实现逻辑
人工智能·wpf·transformer·cann
无心水1 天前
分布式定时任务与SELECT FOR UPDATE:从致命陷阱到优雅解决方案(实战案例+架构演进)
服务器·人工智能·分布式·后端·spring·架构·wpf
LZL_SQ1 天前
HCCL测试框架中AllReduce边界条件测试设计深度剖析
wpf·cann
User_芊芊君子2 天前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件
分布式·深度学习·神经网络·wpf
就是有点傻3 天前
WPF按钮走马灯效果
wpf
zuozewei3 天前
虚拟电厂聚合商平台安全技术体系深度解读
安全·wpf
极客智造3 天前
WPF 自定义控件:AutoGrid 实现灵活自动布局的网格控件
wpf
极客智造3 天前
WPF Grid 布局高效扩展:GridHelpers 附加属性工具类全解析
wpf
张人玉3 天前
WPF 多语言实现完整笔记(.NET 4.7.2)
笔记·.net·wpf·多语言实现·多语言适配