Question

Une grande variété de couleurs est disponible lors de la définition de couleurs dans XAML dans Silverlight, mais les options semblent limitées lorsque vous définissez des couleurs par programme.

Par exemple, dans Silverlight XAML, je peux définir un arrière-plan sur "Alice Blue", "Antique White", etc.,

.

Mais si j'essaie de définir le même arrière-plan dans le code-behind, je suis limité à un ensemble de couleurs assez fini, basé sur Couleurs classe ... Noir, Bleu, Marron ... Blanc, Jaune. Ceux-ci entrent en jeu avec quelque chose comme:

uxPanel.Background = new SolidColorBrush (Colors.Green);

Je sais que je peux définir n'importe quelle couleur via les valeurs RVB, comme dans (où colorsString ressemble à "112345"):

var brush = new SolidColorBrush ();
var c = new Color
            {
                A = 0xFF,
                R = Convert.ToByte (colorString.Substring (0, 2), 16),
                G = Convert.ToByte (colorString.Substring (2, 2), 16),
                B = Convert.ToByte (colorString.Substring (4, 2), 16)
            };

brush.Color = c;

return (brush);

Mais comment puis-je exploiter la plus grande variété de noms de couleurs accessibles en XAML ou via un style, mais définis par programme dans mon code-behind? Ou n'est-ce pas possible dans Silverlight?

Était-ce utile?

La solution

Je ne suis pas sûr de comprendre la question. Dans mon code-behind en XAML, je peux accéder à des couleurs telles que "Blanc antique". via l'objet Colors:

var c = Colors.AntiqueWhite;

Ce n'est pas un ensemble de couleurs différent de celui auquel vous pouvez accéder en XAML.

Des couleurs telles que AntiqueWhite sont disponibles si je référence Système. Drawing.Color ou System.Windows. Media.Colors .

Modifier

On dirait donc que vous parlez spécifiquement du Classe System.Windows.Media.Colors dans Silverlight , qui ne vous fournit en effet qu'un ensemble limité de couleurs. Comme c'est étrange!

Je suppose que la meilleure chose à faire est de définir votre propre classe avec les valeurs ARGB des Documentation MSDN sur la version WPF . Quelque chose comme:

public static class ExtraColors
{
    private static Color _antiqueWhite = Color.FromArgb(0xFF, 0xFA, 0xEB, 0xD7);
    // etc

    public static Color AntiqueWhite { get { return _antiqueWhite; } }
    // etc
}

C'est maladroit, je sais, mais vous obtiendrez au moins une liste lisible de ces couleurs supplémentaires, accessible par code.

Autres conseils

Quelqu'un chez silverlight.net code publié pour recréer les couleurs XAML dans C #.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top