WPF颜色(SolidColorBrush)和Win32颜色(COLOREF)互转的方法

在WPF中,在Win32颜色互相转换时,需要用到以下方法

SolidColorBrush转COLORREF

复制代码
1         public int ToCOLORREF(SolidColorBrush solidColorBrush)
2         {
3             var color = solidColorBrush.Color;
4             return ((color.R | (color.G << 8)) | (color.B << 0x10));
5         }

COLORREF转SolidColorBrush

复制代码
        public SolidColorBrush FromCOLORREF(int COLORREF_Color)
        {
            return new SolidColorBrush(Color.FromRgb((byte)(COLORREF_Color & 0xff), (byte)((COLORREF_Color >> 8) & 0xff), (byte)((COLORREF_Color >> 0x10) & 0xff)));
        }

说明:

也可以使用System.Drawing.ColorTranslator.ToOle和System.Drawing.ColorTranslator.FromOle方法来进行转换,但是不推荐这种方法,因为返回类型是System.Drawing.Color,需要再次转换才能在WPF中使用。

附:从16进制字符串转SolidColorBrush的方法

复制代码
1         public SolidColorBrush FromString(string colorStr)
2         {
3             return new SolidColorBrush((Color)ColorConverter.ConvertFromString(colorStr));
4         }
相关推荐
晚安苏州9 小时前
WPF DataTemplate 数据模板
wpf
甜甜不吃芥末1 天前
WPF依赖属性详解
wpf
Hat_man_1 天前
WPF制作图片闪烁的自定义控件
wpf
晚安苏州3 天前
WPF Binding 绑定
wpf·wpf binding·wpf 绑定
wangnaisheng3 天前
【WPF】RenderTargetBitmap的使用
wpf
dotent·3 天前
WPF 完美解决改变指示灯的颜色
wpf
orangapple5 天前
WPF 用Vlc.DotNet.Wpf实现视频播放、停止、暂停功能
wpf·音视频
ysdysyn5 天前
wpf mvvm 数据绑定数据(按钮文字表头都可以),根据长度进行换行,并把换行的文字居中
c#·wpf·mvvm
orangapple5 天前
WPF 使用LibVLCSharp.WPF实现视频播放、停止、暂停功能
wpf
晚安苏州5 天前
WPF ControlTemplate 控件模板
wpf