.net中几种颜色类的区别

类型命名空间所属框架用途透明度通道WPF 控件直接赋值(Foreground/Background)
System.Windows.Media.Color System.Windows.Media WPF 专用 仅存储 R/G/B/A 纯颜色数值,作为画刷内部底色 内置 A (Alpha) 字节(0~255),支持任意半透明 ❌ 不可直接赋值,必须包裹为 SolidColorBrush
System.Windows.Media.SolidColorBrush System.Windows.Media WPF 专用 WPF 界面渲染 “画笔”,用于 DataGrid、文字、图形上色 内部封装 Color,通过 Color.A 自定义透明度 ✅ 原生兼容,XAML 绑定无报错
System.Drawing.Color System.Drawing GDI+/WinForm 位图、图片打印、WinForm 旧窗体绘图 仅固定命名透明色 Transparent,无自定义 Alpha 字节 ❌ 与 WPF 不兼容,必须中转转换

 

简要区分说明

  1. System.Windows.Media.Color:只是一组 RGBA 数字,单纯记录颜色,不能直接给界面上色;
  2. SolidColorBrush:WPF 专用绘图对象,内部包含上面的 Color,是能真正渲染到页面的 “颜料”;
  3. System.Drawing.Color:老版 WinForm/GDI 绘图专用,和 WPF 界面体系不互通,项目里没有图片导出需求可以直接删除该引用。

五、日常使用规则(WPF 通用)

  1. 仅存色值、做计算、转换 → 用 Color

  2.给 DataGrid、TextBlock、Shape 设置文字 / 背景颜色 → 必须用 Brush/SolidColorBrush

  3. 互相转换:

  4. Color → Brush:new SolidColorBrush(myColor)

  5. Brush → Color:((SolidColorBrush)brush).Color

posted @ 2026-06-30 21:10  工易  阅读(8)  评论(0)    收藏  举报