将 MaterialDesignColors.MaterialDesignColor 转换为 SolidColorBrush?

Convert MaterialDesignColors.MaterialDesignColor to SolidColorBrush?

我在我的 C# WPF 应用程序中使用 this MaterialDesign library

如何以编程方式从颜色 MaterialDesignColors.MaterialDesignColor.LightBlue500 中获取 HEX 颜色 ID,然后将其转换为 SolidColorBrush

一般来说,您可以使用 SwatchHelper.

获得任何 MaterialDesignColor
var lightBlue500Color = SwatchHelper.Lookup[MaterialDesignColor.LightBlue500];

也可以直接从对应的swatch中获取,这里LightBlueSwatch.

var lightBlue500Color = LightBlueSwatch.LightBlue500;
var lightBlueSwatch = new LightBlueSwatch();
var lightBlue500Color = lightBlueSwatch.Lookup[MaterialDesignColor.LightBlue500];

根据该颜色,您可以使用其构造函数创建 SolidColorBrush

var lightBlue500SolidColorBrush = new SolidColorBrush(lightBlue500Color);

如果需要#AARRGGBB格式的十六进制颜色字符串,可以使用ColorToString方法。

var lightBlue500HexString= LightBlueSwatch.LightBlue500.ToString(); // = "#FF03A9F4"

如果需要 #RRGGBB 格式,可以使用自定义格式字符串。

var lightBlue500Color = LightBlueSwatch.LightBlue500;
var lightBlue500HexString = string.Format("#{0:X2}{1:X2}{2:X2}", lightBlue500Color.R, lightBlue500Color.G, lightBlue500Color.B); // = "#03A9F4"

一般来说,如果您想从十六进制字符串创建纯色画笔,您可以这样做。

var lightBlue500Color = (Color)ColorConverter.ConvertFromString(#FF03A9F4);
var lightBlue500SolidColorBrush = new SolidColorBrush(lightBlue500Color);