.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 不兼容,必须中转转换 |
简要区分说明
- System.Windows.Media.Color:只是一组 RGBA 数字,单纯记录颜色,不能直接给界面上色;
- SolidColorBrush:WPF 专用绘图对象,内部包含上面的 Color,是能真正渲染到页面的 “颜料”;
- 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

浙公网安备 33010602011771号