C# 16进制转 Brush 颜色对象

原文: C# 16进制转 Brush 颜色对象

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/u014117094/article/details/48135045

代码图如下:



代码片如下:

BrushConverter brushConverter = new BrushConverter();
                PopupBorder.Background = (Brush)brushConverter.ConvertFromString("#121212");
                MessageLabel.Foreground = (Brush)brushConverter.ConvertFromString("#7d7d7d");

posted on 2019-04-23 01:10 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10754099.html

### C# 中使用 16 进制表示颜色的方法 在 C# 中,可以通过多种方式将 16 进制颜色代码换为可使用的颜色对象。以下是几种常见的实现方法: #### 方法一:通过 `System.Drawing.Color` 类解析 16 进制字符串 可以利用 `System.Drawing.Color.FromArgb()` 方法手动解析 16 进制字符串并将其化为 RGB 值的颜色对象。 ```csharp public static System.Drawing.Color HexToRgb(string hexColor) { try { if (string.IsNullOrEmpty(hexColor)) return System.Drawing.Color.FromArgb(0, 0, 0); if (!hexColor.StartsWith("#")) hexColor = "#" + hexColor; int a = 255; int r = System.Convert.ToInt32(hexColor.Substring(1, 2), 16); int g = System.Convert.ToInt32(hexColor.Substring(3, 2), 16); int b = System.Convert.ToInt32(hexColor.Substring(5, 2), 16); if (hexColor.Length == 9) // 如果有透明度 { a = System.Convert.ToInt32(hexColor.Substring(1, 2), 16); r = System.Convert.ToInt32(hexColor.Substring(3, 2), 16); g = System.Convert.ToInt32(hexColor.Substring(5, 2), 16); b = System.Convert.ToInt32(hexColor.Substring(7, 2), 16); } return System.Drawing.Color.FromArgb(a, r, g, b); } catch { return System.Drawing.Color.Black; } } ``` 此函数支持带或不带透明度的 16 进制颜色码[^1]。 --- #### 方法二:通过 WPF 的 `BrushConverter` 换为画刷对象 对于 Windows Presentation Foundation (WPF),可以直接使用 `BrushConverter` 来处理 16 进制颜色字符串,并将其换为可用于 UI 绘图的 `Brush` 对象。 ```csharp using System.Windows.Media; using System.ComponentModel; public static Brush ConvertHexToBrush(string hexColor) { BrushConverter converter = new BrushConverter(); return (Brush)converter.ConvertFromString(hexColor); } // 示例调用 var backgroundBrush = ConvertHexToBrush("#FFAABB"); var foregroundBrush = ConvertHexToBrush("#FFFFFF"); ``` 这种方法适用于需要设置背景色或前景色的情况,例如修改控件样式时[^4]。 --- #### 十六进制颜色的基础知识 十六进制颜色由三个部分组成,分别对应红(Red)、绿(Green) 和蓝(Blue)三种基本颜色通道。每个通道占用两位字符,范围是从 `00` 到 `FF`(即十进制中的 0 至 255)。例如: - `#FF0000` 表示纯红色; - `#00FF00` 表示纯绿色; - `#0000FF` 表示纯蓝色; - `#FFFFFF` 表示白色; - `#000000` 表示黑色[^3]。 此外,还可以扩展至八位形式以包含 Alpha 通道(透明度),如 `#80FF0000` 表示半透明的红色。 --- ### 总结 以上两种方法分别为基于 WinForms (`System.Drawing`) 和 WPF (`System.Windows.Media.Brush`) 的解决方案。开发者可以根据具体项目需求选择合适的方式完成 16 进制颜色的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值