本文共 1372 字,大约阅读时间需要 4 分钟。
16进制颜色
Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0"))
透明度参照这篇文章
原文引用:
有时候你是不是也会遇到要在wpf后台给某个控件设置背景色或者给文字设置前景色的情况?
本人最近看到一个从自定义的combobox读取系统字体和颜色的实例,该实例实现了随字体combobox选项改变而改变字体的设置,而颜色combobox却没有实现,于是自己也想设置一下。结果发现颜色从前台好像不好设置成动态的,于是尝试从后台combobox_SelectionChanged事件设置。
要设置颜色,首先要获取颜色。获取颜色的方式我总结了四种:
1、
Color color = Color.FromArgb(透明度, red数字, green数字, blue数字); //这四个数字范围都是(0-255) Color color = Color.FromRgb(red数字, green数字, blue数字);//默认透明度为255;
2、
Color color = (Color)ColorConverter.ConvertFromString(“Blue”);
3、
if (e.Source is ComboBox) { var value = (e.Source as ComboBox).SelectedValue; int start = value.ToString().IndexOf("Color"); string selectcolor = value.ToString().Substring(start+5); Color color = (Color)ColorConverter.ConvertFromString(selectcolor); textblock.Foreground = new SolidColorBrush(color); }
4、
TBlock_content.Foreground = Brushes.Blue; //(对于有Brushes的时候)
5、
tblock_gethistory.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2786E4"));
这里我们着重说一下第三种,value获取的值是:System.Windows.Media.Color 颜色名 (比如System.Windows.Media.Color Blue)。所以我们需要截取出后面的名字,然后使用(Color)ColorConverter.ConvertFromString(selectcolor) 转换为颜色格式。注意,不能使用ColorConverter.ConvertFromString(selectcolor) as Color;提示错误Color必须为非Null值。
转载地址:http://xxxmz.baihongyu.com/