当前位置: 首页 > news >正文

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实现动画。
http://www.dtcms.com/a/314391.html

相关文章:

  • 深入浅出 RabbitMQ:工作队列实战(轮训策略VS公平策略)
  • ShowDoc与Docmost对比分析:开源文档管理工具的选择指南
  • 05 基于sklearn的机械学习-梯度下降(下)
  • 神经网络---非线性激活
  • Vue 响应式数据核心:ref 与 reactive 的本质区别
  • transformer与神经网络
  • CMakeLists.txt学习
  • C++ 中 initializer_list 类型推导
  • Exporters | 安装elasticsearch_exporter
  • Kali基础知识点【2】
  • 【论文阅读】ACE: Explaining cluster from an adversarial perspective
  • 【Java】HashMap线程安全吗?
  • 随笔之 ClickHouse 列式分析数据库安装注意事项及基准测试
  • clickhouse 中文数据的正则匹配
  • 【盘古100Pro+开发板实验例程】FPGA学习 | 3X3图像矩阵生成 | 图像实验指导手册
  • Exporters | 安装mysqld_exporter
  • SpringCloud相关知识
  • 晨控CK-GW08S与汇川AC系列PLC配置Ethernet/IP通讯连接手册
  • DevOps平台大比拼:Gitee、Jenkins与CircleCI如何选型?
  • 乐思 AI 智能识别平台(基于 YOLO,.NET+Vue3 开发)开源指南
  • 【秋招笔试】2025.08.03-拼多多笔试真题-第二题
  • 自然语言理解领域算法模型演进图谱
  • 2025最新、UI媲美豆包、DeepSeek等AI大厂的AIGC系统 - IMYAI源码部署教程
  • 多级表头的导出
  • 人大金仓数据库常见问题(持续更新)
  • SJW-app-1
  • [Sensors]BMI270 FIFO的使用
  • 对于类似std::shared_ptr但有可能空悬的指针使用std::weak_ptr: Effective Modern C++ 条款20
  • Shell 脚本发送信号给 C 应用程序,让 C 应用程序回收线程资源后自行退出。
  • Linux服务器管理MySQL数据库的常见命