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实现动画。
相关推荐
源之缘-OFD先行者17 小时前
10 万雷达点迹零卡顿回放:WPF + Vortice.Direct2D 多线程渲染实战
wpf
猫林老师1 天前
Flutter for HarmonyOS开发指南(九):测试、调试与质量保障体系
flutter·wpf·harmonyos
LateFrames1 天前
做【秒开】的程序:WPF / WinForm / WinUI3 / Electron
electron·c#·wpf·winform·winui3·claude code
beyond谚语2 天前
第四章 依赖项属性
wpf
国服第二切图仔2 天前
鸿蒙应用开发之实现键值型数据库跨设备数据同步
数据库·wpf·harmonyos
玖笙&2 天前
✨WPF编程进阶【7.1】动画基础
c++·c#·wpf·visual studio
专注VB编程开发20年2 天前
探讨vs2022在net6框架wpf界面下使用winform控件
framework·.net·wpf·winform·cefsharp·miniblink·geckofx45
刘一说2 天前
Spring Boot 中的定时任务:从基础调度到高可用实践
spring boot·后端·wpf
FuckPatience2 天前
WPF 获取鼠标相对于控件的坐标信息,控制控件锚点放缩
wpf
兰雪簪轩3 天前
仓颉Actor模型:分布式并发编程的优雅之道
分布式·wpf