我必须使用Textblock的前景十六进制颜色.它不起作用.请帮助我.
我试过这个例子
txtHome.Foreground = new SolidColorBrush(Colors.Red);
但我想使用Hex颜色代码不使用Color.red等.
虽然有些答案会创建不必要的字符串,但我建议使用效率最高的字符串:
var brush=new SolidColorBrush(Color.FromArgb(0xFF, 0xD0, 0x20, 0x30));
我刚刚使用该FromArgb
方法直接转换颜色的十六进制表示.第一个参数是alpha或opacity,您可以始终使用255/0xFF来指定完全不透明度.然后,它只提供表示颜色的3个字节,它们与在颜色的常见十六进制表示中出现的顺序相同.在上面的例子中:"D02030"
.
此外,您可以考虑创建一个可重用的资源来表示SolidColorBrush
并将其添加到app.xaml
文件中,以使其全局可用:
<SolidColorBrush x:Key="myBrush" Color="#D02030" />
然后,在代码中:
txtHome.Foreground = App.Current.Resources["myBrush"] as SolidColorBrush;