Modification de la Couleur de la Lecture du Fichier
-
20-12-2019 - |
Question
Je suis l'aide de Windows Phone.Le problème est qu'il n'a pas l' Color.FromName
il a plutôt l' Color.FromArgb
.
J'ai un rectangle et je veux mettre sa couleur de remplissage en fonction de ce que la couleur est à partir d'un fichier qui est lu.par exempleJ'ai enregistré "Rouge" dans un fichier appelé les couleurs.J'ai lu et que je les envoie à une chaîne de caractères appelée LpColor
maintenant, qui va contenir le texte "Rouge" à l'intérieur.
Maintenant, comment dois-je utiliser LpColor
dans Rectangle.Fill = ...
.Faire Un Rectangle.Fill = LpColor ne fonctionnera pas.
C'est le code qui me permet de lire mes fichiers:
IsolatedStorageFileStream readColor = store.OpenFile("/contactColor.txt", FileMode.Open, FileAccess.Read);
using (StreamReader contactColor = new StreamReader(readColor))
{
var color = contactColor.ReadToEnd();
LpColor = color;
}
La solution
Si vous devez l'enregistrer en tant que chaîne de caractères (Rouge), vous pouvez écrire un convertisseur méthode qui permettra de convertir la chaîne de retour à une couleur.En fonction du nombre de couleurs que vous avez, de la complexité de la méthode de croître, de sorte que vous voudrez peut-être repenser enregistrement de la couleur en tant que nom - peut-être que vous pouvez enregistrer comme une combinaison de l'ARGB et le nom?Utiliser une classe pour tenir cette info?Il y en a beaucoup d'options.
De toute façon, votre convertisseur simple serait de faire quelque chose comme ceci:
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);
}
À l'aide de l'instruction switch au lieu de sans fin si-sinon-si peut-être une meilleure idée si vous avez beaucoup de chaînes de caractères, si.