C# 通过读取文件更改颜色
我正在使用Windows Phone。问题是它没有C# 通过读取文件更改颜色,c#,windows-phone-8,colors,C#,Windows Phone 8,Colors,我正在使用Windows Phone。问题是它没有颜色,而是颜色。FromName 我有一个矩形,我想根据正在读取的文件的颜色设置它的填充颜色。e、 我已将“红色”保存在一个名为“颜色”的文件中。我读了它,然后将它发送到一个名为LpColor的字符串,该字符串将在其中保存文本“Red” 现在我如何在Rectangle.Fill=…中使用LpColor。执行Rectangle.Fill=LpColor将不起作用 以下是我如何读取文件的代码: IsolatedStorageFileStream re
颜色,而是颜色。FromName
我有一个矩形,我想根据正在读取的文件的颜色设置它的填充颜色。e、 我已将“红色”保存在一个名为“颜色”的文件中。我读了它,然后将它发送到一个名为LpColor
的字符串,该字符串将在其中保存文本“Red”
现在我如何在Rectangle.Fill=…
中使用LpColor
。执行Rectangle.Fill=LpColor将不起作用
以下是我如何读取文件的代码:
IsolatedStorageFileStream readColor = store.OpenFile("/contactColor.txt", FileMode.Open, FileAccess.Read);
using (StreamReader contactColor = new StreamReader(readColor))
{
var color = contactColor.ReadToEnd();
LpColor = color;
}
如果必须将其另存为字符串(红色),则可以编写一个转换器方法,将字符串转换回颜色。根据您拥有的颜色数量,该方法的复杂性将增加,因此您可能需要重新考虑将颜色保存为名称-也许您可以将其保存为ARGB和name的组合?使用类来保存该信息?有很多选择
无论如何,您的简单转换器将执行以下操作:
private SolidColorBrush ColorNameToBrush(string colorName)
{
Color color = Color.FromArgb(0,0,0,0);
if (colorName == "Red")
{
color = new Color() { R = 255, G = 0, B = 0};
}
else if ...
{
}
return new SolidColorBrush(color);
}
如果您有很多字符串,使用switch语句而不是无尽的if-else-if可能是一个更好的主意。谢谢!但是当我使用它时:Rect.Fill=ColorNameToBrush(LpColor)
表示:返回新的SolidColorBrush(颜色)代码>使用未赋值局部变量“color”有什么想法吗?哦,是的,我编辑了我的答案,在方法开始时将颜色设置为(0,0,0,0),以备您的转换器代码(在本例中为if else if)无法生成颜色时使用……谢谢Igrali!完全正确正是我需要的:D