Aller au contenu principal

LgColorPickerBox

LgColorPickerBox permet de sélectionner une couleur dans une palette déroulante ou de saisir une couleur personnalisée (nom CSS ou code hexadécimal). Il hérite de LgTextBox : la valeur liée est une chaîne, normalisée au format hexadécimal majuscule (#RRGGBB).

<LgColorPickerBox Label="#Color" @bind-Value="_model.Color" />
  • Espace de noms : Lagoon.UI.Components
  • Hérite de : LgTextBox → LgInputRenderBase<string> → LgInputBase<string> → LgAriaComponentBase → LgComponentBase
  • Interfaces : ILgDropDownComponent
  • Package NuGet : Lagoon.UI

Utilisation​

Démonstration​

Essayez ce composant dans le showcase Lagoon.

Sélection dans la palette​

Sans paramètre, la palette proposée est celle de la configuration de comportement de l'application. La saisie accepte un nom CSS (red), un code hexadécimal complet (#FF0000), court (#f00) ou sans # (f00) — la valeur est toujours normalisée en #RRGGBB.

TagColorPage.razor
<LgColorPickerBox Label="#TagColor" @bind-Value="_model.Color" />
TagColorPage.razor.cs
public partial class TagColorPage : LgPage
{
private readonly TagVm _model = new();

private sealed class TagVm
{
public string Color { get; set; }
}
}

Palette spécifique au champ​

Palette remplace la palette de l'application pour ce champ.

ThemeColorPage.razor
<LgColorPickerBox Label="#ThemeColor"
Palette="_customPalette"
@bind-Value="_model.Color" />
ThemeColorPage.razor.cs
public partial class ThemeColorPage : LgPage
{
// Couleurs de la charte : seul ce nuancier est proposé à l'utilisateur.
private readonly List<string> _customPalette = new() { "#1B6EC2", "#0E7490", "#22B8DD" };

private readonly ThemeVm _model = new();

private sealed class ThemeVm
{
public string Color { get; set; }
}
}

La palette par défaut de toute l'application se personnalise dans la configuration de comportement du client (Main du projet client).

Saisie hexadécimale et message d'erreur​

ShowInput affiche ou masque le champ de saisie hexadécimal (par défaut, la configuration de l'application s'applique). ParsingErrorMessage personnalise le message affiché quand la valeur n'est pas une couleur valide.

BadgeColorPage.razor
@* Sélection stricte dans la palette, sans saisie libre. *@
<LgColorPickerBox Label="#BadgeColor"
ShowInput="false"
@bind-Value="_model.PaletteColor" />

@* Saisie libre avec message d'erreur métier. *@
<LgColorPickerBox Label="#CustomColor"
ShowInput="true"
ParsingErrorMessage="#InvalidBadgeColor"
@bind-Value="_model.CustomColor" />
BadgeColorPage.razor.cs
public partial class BadgeColorPage : LgPage
{
private readonly BadgeVm _model = new();

private sealed class BadgeVm
{
public string PaletteColor { get; set; }
public string CustomColor { get; set; }
}
}

Réagir au changement de valeur​

OnChangingAsync (hérité de LgTextBox) est appelé avant l'affectation et permet d'annuler le changement (args.Cancel) ; OnChange est appelé après.

ChartColorPage.razor
<LgColorPickerBox Label="#SeriesColor"
OnChangingAsync="OnColorChangingAsync"
@bind-Value="_model.SeriesColor" />
ChartColorPage.razor.cs
public partial class ChartColorPage : LgPage
{
private readonly ChartVm _model = new();

// Appelé avant le changement : refuse les couleurs déjà utilisées par une autre série.
private Task OnColorChangingAsync(ChangingEventArgs<string> args)
{
if (args.NewValue == "#FF0000")
{
args.Cancel = true;
ShowWarning("#ColorAlreadyUsed");
}
return Task.CompletedTask;
}

private sealed class ChartVm
{
public string SeriesColor { get; set; }
}
}

Propriétés​

Toutes les propriétés [Parameter] du composant, y compris celles héritées.

NomTypeDéfautDéclaré dansDescription
PaletteList<string>nullLgColorPickerBoxCouleurs proposées dans la palette. Si null, la palette de la configuration de l'application est utilisée.
ParsingErrorMessagestring#lgColorBoxErrFormatLgColorPickerBoxMessage d'erreur affiché quand la saisie n'est pas une couleur valide.
ShowInputbool?nullLgColorPickerBoxAffiche le champ de saisie hexadécimal. Si null, la configuration de l'application s'applique.
AllowResizeboolfalseLgTextBoxAutorise le redimensionnement lorsque TextMode vaut TextBoxMode.Multiline.
AutoCompleteboolfalseLgTextBoxActive l'autocomplétion du navigateur si true ; sinon l'attribut autocomplete="off" est rendu.
AutoUnmaskboolfalseLgTextBoxRetourne la valeur sans le masque lorsque InputMask est utilisé.
ClearIncompleteboolfalseLgTextBoxVide la valeur si le masque de saisie est incomplet.
DataListList<string>nullLgTextBoxListe de valeurs utilisée pour rendre un datalist associé à l'entrée.
InputMaskstringnullLgTextBoxMasque de saisie appliqué au champ texte.
InputMaskKindInputMaskKindNoneLgTextBoxType de masque de saisie.
MaxLengthint?nullLgTextBoxNombre maximal de caractères.
MaxRowsint?nullLgTextBoxNombre maximal de lignes lorsque TextMode vaut TextBoxMode.Multiline.
MinRowsint?nullLgTextBoxNombre minimal de lignes lorsque TextMode vaut TextBoxMode.Multiline.
OnChangeDisabledboolfalseLgTextBoxDésactive le gestionnaire onchange natif du champ.
OnChangingAsyncFunc<ChangingEventArgs<string>, Task>nullLgTextBoxCallback appelé avant le changement de valeur ; le changement peut y être annulé.
OnFocusEventCallback<FocusEventArgs>—LgTextBoxCallback appelé à la prise de focus.
OnInputEventCallback<ChangeEventArgs>—LgTextBoxCallback appelé à la saisie (oninput).
OnKeyUpEventCallback<KeyboardEventArgs>—LgTextBoxCallback appelé au relâchement d'une touche.
Placeholderstring"red, #FF0000, #f00, f00, ..."LgTextBoxTexte indicatif du champ de saisie hexadécimal.
Rowsint?nullLgTextBoxNombre de lignes lorsque TextMode vaut TextBoxMode.Multiline.
TextModeTextBoxMode?nullLgTextBoxMode du champ texte. Laisser null pour le sélecteur de couleur.
PrefixstringnullLgInputRenderBasePréfixe affiché dans le champ.
PrefixTypeInputLabelTypeTextLgInputRenderBaseNature du préfixe.
SuffixstringnullLgInputRenderBaseSuffixe affiché dans le champ.
SuffixTypeInputLabelTypeTextLgInputRenderBaseNature du suffixe.
AdditionalAttributesIReadOnlyDictionary<string, object>nullLgInputBaseAttributs HTML additionnels appliqués à l'élément rendu.
AutoFocusboolfalseLgInputBaseDonne le focus au champ lors du premier rendu.
ConfirmationMessagestringnullLgInputBaseMessage de confirmation affiché avant d'appliquer un changement de valeur.
ContainerIInputContainer<string>nullLgInputBaseUsage interne : rattache une cellule de GridView au champ.
CssClassstringnullLgInputBaseClasses CSS additionnelles.
DisabledboolfalseLgInputBaseDésactive le champ.
DisplayNamestringnullLgInputBaseNom du champ utilisé dans les messages d'erreur.
HideValidationMessageboolfalseLgInputBaseMasque le message de validation sous le champ.
LabelstringnullLgInputBaseLibellé du champ.
LabelContentRenderFragmentnullLgInputBaseContenu personnalisé de la zone de libellé.
OnChangeEventCallback<ChangeEventArgs>—LgInputBaseCallback appelé après le changement de valeur.
OnResetEventCallback<ChangeEventArgs>—LgInputBaseCallback appelé quand le champ est réinitialisé par le bouton d'effacement.
PolicyEditstringnullLgInputBasePolicy requise pour modifier le champ.
PolicyVisiblestringnullLgInputBasePolicy requise pour afficher le champ.
ReadOnlyboolfalseLgInputBaseAffiche la couleur en lecture seule.
Requiredbool?nullLgInputBaseChamp obligatoire. Si null, déduit de l'attribut [Required] de la propriété liée. Un champ obligatoire n'affiche pas le bouton d'effacement.
ResetButtonbool?nullLgInputBaseAffiche le bouton d'effacement. Si null, la configuration de comportement de l'application s'applique.
ResetTextstringnullLgInputBaseTexte du bouton d'effacement.
ResetTextAriaLabelstringnullLgInputBaseLibellé accessible (aria-label) du bouton d'effacement.
TooltipstringnullLgInputBaseBulle d'aide.
TooltipIsHtmlboolfalseLgInputBaseIndique si le contenu du Tooltip est au format HTML (sinon texte brut).
ValuestringnullLgInputBaseCouleur liée (@bind-Value), normalisée au format #RRGGBB.
ValueChangedEventCallback<string>—LgInputBaseCallback de mise à jour de la valeur liée.
ValueExpressionExpression<Func<string>>—LgInputBaseExpression identifiant la propriété liée.
AriaLabelstringnullLgAriaComponentBaseValeur de l'attribut aria-label.
AriaLabelledBystringnullLgAriaComponentBaseValeur de l'attribut aria-labelledby.
Paramètres en cascade

LgColorPickerBox consomme aussi des paramètres fournis automatiquement par des composants ancêtres (vous n'avez pas à les définir) : ParentAuthorizeView (LgAuthorizeView) et le contexte d'édition d'un LgEditForm parent.

Événements​

ÉvénementTypeDescription
OnChangingAsyncFunc<ChangingEventArgs<string>, Task>Avant le changement de couleur ; args.Cancel = true annule le changement.
OnChangeEventCallback<ChangeEventArgs>Après le changement de couleur.
OnFocusEventCallback<FocusEventArgs>À la prise de focus du champ.
OnResetEventCallback<ChangeEventArgs>À la réinitialisation par le bouton d'effacement.

Bonnes pratiques / accessibilité​

  • Stockez la valeur normalisée #RRGGBB telle quelle : le composant la produit en majuscules, quel que soit le format saisi.
  • ShowInput="false" limite l'utilisateur à la palette : combinez-le avec Palette pour imposer un nuancier.
Référence complète

Tous les paramètres (hérités compris) : Référence API — LgColorPickerBox.

Composants liés​