C#BrushtoString找了个把画笔的颜色保存成字符串的方法。例如,我有一个红色的刷子。现在我想在文本框中写“红色”。感谢您的帮助。如果Brush是使用System.Drawing.Color的Color创建的,则Color的Name属性可用。否则,您可以尝试使用反射来查找颜色//hackvarb=newSolidBrush(System.Drawing.Color.FromArgb(255,255,235,205));varcolorname=(frompintypeof(System.Drawing.Color).GetProperties()wherep.PropertyType.Equals(typeof(System.Drawing.Color))让值=(System.Drawing.Color)p.GetValue(null,null)wherevalue.R==b.Color.R&&value.G==b.Color.G&&value.B==b.Color.B&&value.A==b.Color.A选择p。名称).DefaultIfEmpty("未知").First();//colorname=="BlanchedAlmond"或者自己创建一个映射(并通过字典查看颜色),可能使用周围的许多颜色映射之一。编辑:您写了一条评论说您使用System.Windows.Media.Color,但您仍然可以使用System.Drawing.Color来查找颜色的名称。varb=System.Windows.Media.Color.FromArgb(255,255,235,205);varcolorname=(frompintypeof(System.Drawing.Color).GetProperties()其中p.PropertyType.Equals(typeof(System.Drawing.Color))letvalue=(System.Drawing.Color)p.GetValue(null,null)wherevalue.R==bR&&value.G==bG&&value.B==bB&&value.A==bAselectp.Name).DefaultIfEmpty("unknown").First();这是什么类型的刷子?如果它是一个绘图命名空间,那么brush就是一个抽象类。对于SolidBrush,执行以下操作:brush.Color.ToString()否则,获取颜色属性并使用ToString()方法将颜色转换为其字符串表示形式。基本上我会发布已经回答的内容。stringcolor=textBox1.Text;//最好,使用Color的静态方法Colorred1=Color.FromName(color);//使用ColorConverterTypeConvertertc1=TypeDescriptor.GetConverter(typeof(Color));//..or..TypeConvertertc2=newColorConverter();颜色red2=(Color)tc.ConvertFromString(color);//在颜色或画笔颜色上使用反射red3=(Color)typeof(Color).GetProperty(color).GetValue(null,null);//在WPF中,您可以使用BrushConverterSolidColorBrushredBrush=(SolidColorBrush)newBrushConverter().ConvertFromString(color);C#刷到字符串分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
