using CoreLibrary.Core; using System.Globalization; namespace MauiSpark.Convertisseurs { /// /// Convertisseur de couleur qui implémente l'interface IValueConverter. /// Cette classe permet de convertir des valeurs de type Couleur en valeurs de type Color (et vice versa). /// public class CouleurVersCouleurMAUI : IValueConverter { /// /// Obtient la couleur rouge. /// public static Color Rouge { get; private set; } = Color.FromArgb("#F75353"); /// /// Obtient la couleur verte. /// public static Color Vert { get; private set; } = Color.FromArgb("#53F769"); /// /// Obtient la couleur bleue. /// public static Color Bleu { get; private set; } = Color.FromArgb("#535AF3"); /// /// Obtient la couleur jaune. /// public static Color Jaune { get; private set; } = Color.FromArgb("#E9FE67"); /// /// Obtient la couleur noire. /// public static Color Noir { get; private set; } = Color.FromArgb("#241E1E"); /// /// Obtient la couleur blanche. /// public static Color Blanc { get; private set; } = Color.FromArgb("#FFFFFF"); /// /// Convertit une valeur de type Couleur en une valeur de type Color. /// /// La valeur à convertir. /// Le type cible de la conversion. /// Un paramètre facultatif utilisé pour la conversion. /// La culture à utiliser pour la conversion. /// Une valeur de type Color correspondant à la valeur de type Couleur. public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) { if (value is not Couleur) return Noir; switch (value) { case Couleur.Blanc: return Blanc; case Couleur.Bleu: return Bleu; case Couleur.Vert: return Vert; case Couleur.Rouge: return Rouge; case Couleur.Noir: return Noir; case Couleur.Jaune: return Jaune; default: return Noir; } } /// /// Convertit une valeur de type Color en une valeur de type Couleur. /// /// La valeur à convertir. /// Le type cible de la conversion. /// Un paramètre facultatif utilisé pour la conversion. /// La culture à utiliser pour la conversion. /// Une valeur de type Couleur correspondant à la valeur de type Color. public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) { if (value is not Color) return Couleur.Noir; if (value.Equals(Rouge)) return Couleur.Rouge; if (value.Equals(Vert)) return Couleur.Vert; if (value.Equals(Bleu)) return Couleur.Bleu; if (value.Equals(Jaune)) return Couleur.Jaune; if (value.Equals(Noir)) return Couleur.Noir; if (value.Equals(Blanc)) return Couleur.Blanc; return Couleur.Noir; } } }