English
Français

Blog of Denis VOITURON

for a better .NET world

FluentUI.Blazor v5 RC3

Posted on 2026-05-19

Annonce de Fluent UI Blazor v5 RC3 — ColorPicker, Wizard, Overlay global et plus encore

Nous sommes ravis d’annoncer la troisième Release Candidate de la bibliothèque Fluent UI Blazor v5 ! Depuis la RC2, l’équipe a continué à livrer sur la branche dev-v5 avec deux nouveaux composants — FluentColorPicker et FluentWizard — un tout nouveau service Overlay global, le contrôle programmatique de FluentMenu, ainsi qu’une longue liste d’améliorations apportées aux composants Dialog, Badge, Checkbox, Switch, Input et DataGrid.

Visitez notre site de démonstration.

Nouveau composant : FluentColorPicker

Le composant FluentColorPicker permet aux utilisateurs de choisir une couleur dans une palette prédéfinie ou sur une surface de sélection interactive. Il prend en charge trois vues différentes, exposées via l’énumération ColorPickerView :

La couleur sélectionnée est toujours retournée sous forme de chaîne hexadécimale (par exemple #FF0000) que vous pouvez lier à votre propre modèle avec @bind-Value ou @bind-SelectedColor.

Wizard

Utilisation de base

<FluentColorPicker @bind-SelectedColor="@MyColor"
                   View="ColorPickerView.HsvSquare" />

@code
{
    string MyColor { get; set; } = "#0078D4";
}

FluentColorPickerInput

Le composant FluentColorPickerInput combine un champ de texte avec un FluentColorPicker affiché en popover, offrant un sélecteur de couleurs compact et adapté aux formulaires, qui s’intègre naturellement à côté d’autres contrôles de saisie. Vous pouvez choisir la View affichée dans le popover et éventuellement masquer le champ de texte avec HideTextInput afin de ne conserver que le bouton d’échantillon.

<FluentColorPickerInput @bind-Value="@MyColor"
                        View="ColorPickerView.SwatchPalette" />

Les deux composants sont des enveloppes non stylisées autour de la même logique de sélection. Voir #4712 pour plus de détails.


Nouveau composant : FluentWizard

Le très attendu composant FluentWizard est désormais disponible en v5, migré depuis la v4 avec des améliorations et une nouvelle API. Il guide les utilisateurs à travers une séquence d’étapes, avec prise en charge intégrée de la validation, des modèles d’étape, des boutons personnalisés et des dispositions horizontales ou verticales.

Wizard

Utilisation de base

<FluentWizard @bind-Value="@StepIndex" OnFinish="@OnFinishAsync">
    <Steps>
        <FluentWizardStep Label="Account">
            <p>Enter your account information.</p>
        </FluentWizardStep>
        <FluentWizardStep Label="Profile">
            <p>Tell us about yourself.</p>
        </FluentWizardStep>
        <FluentWizardStep Label="Confirm">
            <p>Review and submit.</p>
        </FluentWizardStep>
    </Steps>
</FluentWizard>

@code
{
    int StepIndex { get; set; } = 0;

    Task OnFinishAsync() => Task.CompletedTask;
}

Points forts

Consultez #4682 pour tous les détails de la migration.


Overlay global via IDialogService

En complément du composant FluentOverlay existant, vous pouvez désormais utiliser IDialogService pour afficher un overlay global depuis n’importe où dans votre application, sans avoir à déclarer un FluentOverlay dans votre balisage.

Un seul overlay global peut être affiché à la fois. L’overlay présente un spinner centré, accompagné d’un message texte optionnel affiché en dessous. Vous pouvez également choisir une CardAppearance pour personnaliser le rendu du contenu de l’overlay.

Afficher et masquer

@inject IDialogService DialogService

// Overlay simple
await DialogService.ShowOverlayAsync();

// Avec un message personnalisé et une taille de spinner
await DialogService.ShowOverlayAsync(options =>
{
    options.Text = "Processing...";
});

// Le masquer
await DialogService.HideOverlayAsync();

FluentMenu — Ouverture programmatique et positionnement par cible

FluentMenu peut désormais être ouvert et fermé de manière programmatique, et positionné par rapport à n’importe quel élément du DOM. Cela est idéal pour les scénarios de menu contextuel où le menu doit apparaître à côté de l’élément sur lequel l’utilisateur a fait un clic droit.

La nouvelle méthode OpenMenuAsync accepte un paramètre optionnel targetId. Lorsqu’il est fourni, le menu est positionné par rapport à l’élément portant cet id plutôt que par rapport à l’élément Trigger d’origine. Vous pouvez affiner la position avec les paramètres targetOffsetLeft et targetOffsetTop (en pixels).

<div id="Target1" @oncontextmenu="@(e => Menu.OpenMenuAsync("Target1"))">Zone 1</div>
<div id="Target2" @oncontextmenu="@(e => Menu.OpenMenuAsync("Target2", targetOffsetLeft: 10, targetOffsetTop: 5))">Zone 2</div>

<FluentMenu @ref="@Menu">
    <FluentMenuList>
        <FluentMenuItem>Menu item 1</FluentMenuItem>
        <FluentMenuItem>Menu item 2</FluentMenuItem>
        <FluentMenuItem>Menu item 3</FluentMenuItem>
    </FluentMenuList>
</FluentMenu>

@code
{
    FluentMenu Menu = default!;
}

Voir #4860.


Améliorations de Dialog

Le composant FluentDialog a bénéficié de plusieurs améliorations dans la RC3 :

Fonctionnalité / Correctif PR
Actions d’en-tête personnalisables (ajout de boutons ou de contenu) #4851
Paramètre PreventDismissOnEscape #4843
Options d’alignement pour le positionnement de la boîte de dialogue #4849
Meilleure hauteur de dialogue pour les appareils mobiles #4853
Correction du suivi des instances de dialogue pour éviter des re-rendus inutiles #4755

Dialog


Refactorisation des composants — ChildContent partout

Plusieurs composants ont été refactorisés pour utiliser le paramètre standard ChildContent, les rendant plus cohérents avec le reste de la bibliothèque et plus faciles à composer :

<FluentCheckbox @bind-Value="@IsAccepted">
    J'accepte les <a href="/terms">termes et conditions</a>
</FluentCheckbox>

<FluentSwitch @bind-Value="@DarkMode">
    Activer le mode sombre
</FluentSwitch>

Améliorations des champs et formulaires


Listes & DataGrid


Card

<FluentCard Shadow="CardShadow.None">
    Contenu de carte plate
</FluentCard>

Corrections de thèmes



Documentation & outillage

Le site de documentation a bénéficié d’une importante passe de finition :

Amélioration PR
Recherche et filtrage des chaînes de localisation #4836
Documentation API et section de localisation mise à jour #4841
DocViewer — Prise en charge améliorée de plusieurs fichiers de commentaires JSON #4774
Guide de migration pour les gestionnaires d’événements @OnClick #4748
Guide de migration mis à jour #4855
Clarification de la documentation pour les paramètres Header et HeaderTemplate dans FluentTab #4765
Ajout d’un lien vers FluentLink dans la documentation #4840
Note sur les mises à jour quotidiennes et lien vers les instructions d’installation #4749
Stylisation améliorée du code dans MarkdownViewer (font-family et overflow-wrap) #4832
Utilisation d’AssemblyLoadContext pour lire les bonnes versions de DLL dans la démo #4829
Nouveau projet de debug SSR pour étudier les scénarios de rendu côté serveur #4831

Serveur MCP


Essayez-le maintenant

Ressource Lien
NuGet Microsoft.FluentUI.AspNetCore.Components --prerelease
Documentation https://v5.fluentui-blazor.net
GitHub https://github.com/microsoft/fluentui-blazor
Guide de migration Migration vers v5

Cette troisième Release Candidate nous rapproche fortement de la version finale de la v5. La surface d’API est désormais considérée comme stable, et nous nous concentrons sur le polissage, les correctifs et les éléments restants suivis dans dev-v5 - TODO List.

Comme toujours, n’hésitez pas à signaler les problèmes sur GitHub et à contribuer. Un immense merci à tous ceux qui ont testé la RC2, signalé des problèmes et soumis des pull requests — un remerciement tout particulier aux contributeurs de la communauté tels que @MarvinKlein1508,@aclerbois et @vnbaaij pour leur implication continue.


Bon Blazoring !

Langues

EnglishEnglish
FrenchFrançais

Suivez-moi

Articles récents