WPF中的Color和Brush是两种不同的概念,它们之间的关系如下:
Color
类来表示颜色。Brush
类来表示画刷。需要注意的是,Color和Brush虽然有关系,但是它们的用途不同。Color主要用于表示颜色,而Brush主要用于设置绘制对象时的画刷属性。
函数原型如下:
public static Color FromArgb(byte alpha, byte red, byte green, byte blue);
public static Color FromRgb(byte red, byte green, byte blue);
其中,参数含义如下:
alpha
:透明度,取值范围为0到255。0表示完全透明,255表示完全不透明。red
:红色分量,取值范围为0到255。green
:绿色分量,取值范围为0到255。blue
:蓝色分量,取值范围为0到255。函数返回一个Color类型的值,表示对应的颜色。如果传入的参数超出了取值范围,则会抛出ArgumentOutOfRangeException异常。
WPF中,可以使用ColorConverter
类将字符串转换为Color对象。以下是一个简单的示例:
private System.Windows.Media.Color? CreateColorFromStr(string colorStr = "#FF0000")
{
// 将颜色字符串转换为Color对象
System.Windows.Media.Color? color = (System.Windows.Media.ColorConverter.ConvertFromString(colorStr)) as System.Windows.Media.Color?;
// 输出Color对象的颜色值
Console.WriteLine("Color值:" + color?.ToString());
return color;
}
需要注意的是,如果颜色字符串的格式不正确,转换过程可能会失败。因此,在使用“ColorConverter.ConvertFromString(colorStr)) ”方法时,应该先检查字符串是否符合颜色格式的要求。
Color对象转换为SolidColorBrush对象:
new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 100, 100, 120));
预定义了大量的常用的SolidColorBrush对象,可以查看:?色彩知识,常用颜色色谱表 (360doc.com)
设置Canvas的background颜色:
设置Line的线条颜色:?
private System.Windows.Media.Color GetRandColor(int start = 0, int end = 256)
{
// 创建一个Random对象
Random random = new Random();
// 生成一个0到255之间的随机整数作为红色分量
byte red = Convert.ToByte(random.Next(start, end));
// 生成一个0到255之间的随机整数作为绿色分量
byte green = Convert.ToByte(random.Next(start, end));
// 生成一个0到255之间的随机整数作为蓝色分量
byte blue = Convert.ToByte(random.Next(start, end));
// 将RGB值转换为ARGB格式的颜色值
System.Windows.Media.Color color = System.Windows.Media.Color.FromArgb(255, red, green, blue);
return color;
}
private System.Windows.Media.Brush GetRandBrush(int start = 0, int end = 256)
{
return new System.Windows.Media.SolidColorBrush(CetRandColor(start, end));
}