C# 我需要更改UI元素的帮助';使用C语言中的文本文件设置颜色#

C# 我需要更改UI元素的帮助';使用C语言中的文本文件设置颜色#,c#,wpf,C#,Wpf,因此,我制作了一个WPF应用程序,我想让用户自定义用户界面的某些对象 我试图用文本文件作为颜色属性来实现这一点,但我找不到一种方法 我发现十六进制更容易作为输入 我想用类似的方法来做: string AvalonBackground = File.ReadAllText("./bin/Theme/TextEditorBackGround.txt"); this.TextEditorAvalon.Background = AvalonBackground; //we canno

因此,我制作了一个WPF应用程序,我想让用户自定义用户界面的某些对象

我试图用文本文件作为颜色属性来实现这一点,但我找不到一种方法

我发现十六进制更容易作为输入

我想用类似的方法来做:

string AvalonBackground = File.ReadAllText("./bin/Theme/TextEditorBackGround.txt");
this.TextEditorAvalon.Background = AvalonBackground; //we cannot implicitly convert a string into a solidcolorbrush, there are better methods of doing so. 
如果您有解决方案,请留下评论或回答


谢谢。

Color.FromRgb不接受字符串。也许你可以这样做

string AvalonBackground = File.ReadAllText("./bin/Theme/TextEditorBackGround.txt");
string[] words = AvalonBackground.Split(',');
byte r = Convert.ToByte(words[0]);
byte g = Convert.ToByte(words[1]);
byte b = Convert.ToByte(words[2]);
var color = SolidColorBrush(Color.FromRgb(r,g,b));

所以,在我不再愚蠢之后,我找到了解决我自己问题的办法。这是给你们这些想要它的人的大致代码

string AvalonBackground = File.ReadAllText("./bin/Theme/TextEditorBackGround.txt");
Color color = (Color)ColorConverter.ConvertFromString(AvalonBackground);
SolidColorBrush brush = new SolidColorBrush(color);
this.TextEditorAvalon.Background = brush; 

我觉得自己真的很愚蠢,因为我花了一个小时才找到解决这个垃圾问题的方法。

你看到了吗?你的问题是它的重复,即使你提出的解决方案的细节可能不合适RGB需要3个参数。拆分文本,转换为整数并应用它。
TextEditorBackGround.txt
的内容是什么样子的?TextEditorBackGround.txt的内容可能是十六进制代码或十进制代码。@虚拟化根本无法解释内容是什么-它只说明内容是混合的。实际内容是什么?如果您选中或将鼠标悬停在RGB的
上,您将看到它需要三个数字,而不是一个字符串。您必须解析该字符串并提取元素为什么不使用WPF资源?首先,所有这些代码都应该是页面中的
样式
标记,只有从数据(任何数据)加载并通过数据绑定更新的值。WPF已经支持从其他XAML文件加载资源。