Notifications de badge pour les applications Windows

Un badge de notification transmet des informations de résumé ou d’état spécifiques à votre application. Ils peuvent être numériques (1 à 99) ou l’un d’un ensemble de glyphes fournis par le système. Des exemples d’informations mieux transmises via un badge incluent l’état de connexion réseau dans un jeu en ligne, l’état utilisateur dans une application de messagerie, le nombre de courriers non lus dans une application de messagerie et le nombre de nouveaux billets dans une application de médias sociaux.

Les badges de notification s’affichent sur l’icône de la barre des tâches de votre application et dans le coin inférieur droit de sa vignette de démarrage, que l’application soit en cours d’exécution. Les badges peuvent être affichés sur toutes les tailles de vignette.

Note

Vous ne pouvez pas fournir votre propre image de badge ; seules les images de badge fournies par le système peuvent être utilisées.

Badges numériques

Value Badge XML
Nombre compris entre 1 et 99. La valeur 0 équivaut à la valeur de glyphe « none » et efface le badge. un badge numérique inférieur à 100. <badge value="1"/>
Nombre supérieur à 99. un badge numérique supérieur à 99. <badge value="100"/>

Badges de glyphe

Au lieu d’un nombre, un badge peut afficher un ensemble non extensible de glyphes d’état.

Status Glyph XML
none (Aucun badge affiché.) <badge value="none"/>
activity Badge de glyphe indiquant l’état « activité ». <badge value="activity"/>
alarm Un badge de glyphe indiquant l’état « alarme ». <badge value="alarm"/>
alert Badge de glyphe indiquant l’état « alerte ». <badge value="alert"/>
attention Un badge de glyphe indiquant l’état « attention ». <badge value="attention"/>
available Badge de glyphe indiquant l’état « disponible ». <badge value="available"/>
away Un badge de glyphe indiquant l’état « absent ». <badge value="away"/>
busy Un badge de glyphe indiquant l’état « occupé ». <badge value="busy"/>
error Un badge de glyphe indiquant l’état « erreur ». <badge value="error"/>
newMessage Insigne de glyphe indiquant l’état « nouveau message ». <badge value="newMessage"/>
paused Badge de glyphe indiquant l’état « suspendu ». <badge value="paused"/>
playing Un badge de glyphe indiquant l’état « jouer ». <badge value="playing"/>
unavailable Un badge de glyphe indiquant l’état « indisponible ». <badge value="unavailable"/>

Définir un badge dans une application SDK d'application Windows

À compter de SDK d'application Windows 1.7, utilisez la classe BadgeNotificationManager dans l’espace Microsoft.Windows.BadgeNotifications de noms pour définir et effacer les badges. Il s’agit de l’approche recommandée pour les applications SDK d'application Windows. Au lieu de créer une charge utile XML, vous appelez une méthode et transmettez un numéro ou une valeur BadgeNotificationGlyph .

Icône galerie WinUI 3 L’application Galerie WinUI 3 inclut des exemples interactifs de contrôles et de fonctionnalités WinUI. Obtenez l’application à partir du Microsoft Store ou parcourez le code source sur GitHub.

Important

BadgeNotificationManager nécessite une identité de package. Si votre application n’a pas d’identité de package, par exemple parce qu’elle n’est pas empaquetée, les appels à SetBadgeAsCount, SetBadgeAsGlyph et ClearBadge lèvent une exception. Pour plus d’informations, consultez Une vue d’ensemble de l’identité de package dans les applications Windows.

Le badge apparaît sur l’icône de la barre des tâches de votre application. Si l’application est épinglée à la barre des tâches, le badge s’affiche même lorsque l’application n’est pas en cours d’exécution. Pour obtenir l’instance BadgeNotificationManager de votre application, utilisez la propriété Current .

Les exemples suivants sont basés sur l’exemple de galerie WinUI 3. Pour les utiliser, ajoutez une using Microsoft.Windows.BadgeNotifications; directive à votre fichier de code.

Définir un badge numérique

Appelez SetBadgeAsCount et passez le nombre à afficher. Si le nombre est supérieur à 99, le badge affiche « 99 + ».

private void SetBadgeCountButton_Click(object sender, RoutedEventArgs e)
{
    // Show the number 5 on the app's taskbar icon.
    BadgeNotificationManager.Current.SetBadgeAsCount(5);
}

Définir le badge du glyphe

Appelez SetBadgeAsGlyph et transmettez une valeur BadgeNotificationGlyph. Les valeurs d’énumération correspondent aux glyphes dans le tableau Glyph badges.

private void SetBadgeGlyphButton_Click(object sender, RoutedEventArgs e)
{
    // Show the alert glyph on the app's taskbar icon.
    BadgeNotificationManager.Current.SetBadgeAsGlyph(BadgeNotificationGlyph.Alert);
}

Effacer le badge

Appelez ClearBadge pour supprimer le badge. Définir un nombre de 0, ou le BadgeNotificationGlyph.None glyphe, efface également le badge.

private void ClearBadgeButton_Click(object sender, RoutedEventArgs e)
{
    BadgeNotificationManager.Current.ClearBadge();
}

Créer un badge avec l’API BadgeUpdateManager UWP

Ces exemples utilisent la classe BadgeUpdateManager dans l’espace de noms Windows.UI.Notifications de Windows Runtime, qui est l’API de badge pour les applications UWP. Vous générez le badge en tant que charge utile XML, en utilisant les valeurs des tables précédentes. Si votre application utilise SDK d'application Windows version 1.7 ou ultérieure, utilisez BadgeNotificationManager à la place.

Créer un badge numérique

private void setBadgeNumber(int num)
{

    // Get the blank badge XML payload for a badge number
    XmlDocument badgeXml = 
        BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeNumber);

    // Set the value of the badge in the XML to our number
    XmlElement badgeElement = badgeXml.SelectSingleNode("/badge") as XmlElement;
    badgeElement.SetAttribute("value", num.ToString());

    // Create the badge notification
    BadgeNotification badge = new BadgeNotification(badgeXml);

    // Create the badge updater for the application
    BadgeUpdater badgeUpdater = 
        BadgeUpdateManager.CreateBadgeUpdaterForApplication();

    // And update the badge
    badgeUpdater.Update(badge);

}

Créer un badge de glyphe

private void updateBadgeGlyph()
{
    string badgeGlyphValue = "alert";

    // Get the blank badge XML payload for a badge glyph
    XmlDocument badgeXml = 
        BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeGlyph);

    // Set the value of the badge in the XML to our glyph value
    Windows.Data.Xml.Dom.XmlElement badgeElement = 
        badgeXml.SelectSingleNode("/badge") as Windows.Data.Xml.Dom.XmlElement;
    badgeElement.SetAttribute("value", badgeGlyphValue);

    // Create the badge notification
    BadgeNotification badge = new BadgeNotification(badgeXml);

    // Create the badge updater for the application
    BadgeUpdater badgeUpdater = 
        BadgeUpdateManager.CreateBadgeUpdaterForApplication();

    // And update the badge
    badgeUpdater.Update(badge);

}

Effacer un badge

private void clearBadge()
{
    BadgeUpdateManager.CreateBadgeUpdaterForApplication().Clear();
}

Obtenir l’exemple de code