Cambio de color leyendo del archivo
-
20-12-2019 - |
Pregunta
Estoy usando Windows Phone.El problema es que no tiene el Color.FromName
, en lugar de eso, tiene el Color.FromArgb
.
Tengo un rectángulo y quiero configurar su color de relleno según lo que el color es de un archivo que se está leyendo.p.ej.He guardado "rojo" en un archivo llamado colores.Leí eso y lo envié a una cadena llamada LpColor
ahora que mantendrá el texto "rojo" dentro.
Ahora, ¿cómo uso LpColor
en Rectangle.Fill = ...
?Haciendo Rectangle.Fill= LPColor no funcionará.
Este es el código sobre cómo leí mi archivo:
IsolatedStorageFileStream readColor = store.OpenFile("/contactColor.txt", FileMode.Open, FileAccess.Read);
using (StreamReader contactColor = new StreamReader(readColor))
{
var color = contactColor.ReadToEnd();
LpColor = color;
}
Solución
Si debe guardarlo como una cadena (rojo), puede escribir un método de convertidor que convertirá la cadena de nuevo a un color.Dependiendo de la cantidad de colores que tenga, la complejidad del método crecerá, por lo que es posible que desee replantear el guardado del color como nombre, ¡tal vez podría guardarlo como una combinación de ARGB y nombre?Usa una clase para mantener esa información?Hay muchas muchas opciones.
De todos modos, su convertidor simple haría algo así:
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);
}
Uso de la declaración de conmutación en lugar de sin fin si, si puede ser una mejor idea si tiene muchas cadenas, sin embargo.