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;
}
}
}