Badgemeldingen voor Windows-apps

Een meldingsbadge geeft samenvattings- of statusgegevens over die specifiek zijn voor uw app. Ze kunnen numeriek (1-99) of een van een set door het systeem geleverde glyphs zijn. Voorbeelden van informatie die het beste via een badge wordt overgebracht, zijn de status van de netwerkverbinding in een online game, de gebruikersstatus in een berichten-app, het aantal ongelezen e-mailberichten in een e-mail-app en het aantal nieuwe berichten in een sociale media-app.

Meldingsbadges worden weergegeven op het taakbalkpictogram van uw app en in de rechterbenedenhoek van de begintegel, ongeacht of de app wordt uitgevoerd. Badges kunnen worden weergegeven op alle tegelformaten.

Note

U kunt uw eigen badgeafbeelding niet opgeven; alleen door het systeem geleverde badgeafbeeldingen kunnen worden gebruikt.

Numerieke badges

Value Badge XML
Een getal van 1 tot 99. Een waarde van 0 is gelijk aan de tekenwaarde ‘none’ en zal de badge wissen. Een numerieke badge kleiner dan 100. <badge value="1"/>
Een getal groter dan 99. Een numerieke badge groter dan 99. <badge value="100"/>

Glyph badges

In plaats van een getal kan een badge een van een niet-uitbreidbare set status-glyphs weergeven.

Status Glyph XML
none (Er wordt geen badge weergegeven.) <badge value="none"/>
activity Een symboolbadge die de status 'activiteit' aangeeft. <badge value="activity"/>
alarm Een symboolbadge die de status 'alarm' aangeeft. <badge value="alarm"/>
alert Een glyph-badge die de status 'waarschuwing' aangeeft. <badge value="alert"/>
attention Een symboolbadge die de status 'aandacht' aangeeft. <badge value="attention"/>
available Een symboolbadge die de status 'beschikbaar' aangeeft. <badge value="available"/>
away Een symboolbadge die de status 'afwezig' aangeeft. <badge value="away"/>
busy Een pictogram dat de status Bezet aangeeft. <badge value="busy"/>
error Een symboolbadge die de status 'fout' aangeeft. <badge value="error"/>
newMessage Een symboolbadge die de status 'newMessage' aangeeft. <badge value="newMessage"/>
paused Een symboolbadge die de status 'onderbroken' aangeeft. <badge value="paused"/>
playing Een symboolbadge die de status 'afspelen' aangeeft. <badge value="playing"/>
unavailable Een glyph-badge die de status 'niet beschikbaar' aangeeft. <badge value="unavailable"/>

Een badge instellen in een Windows App SDK-app

Vanaf Windows App SDK 1.7 kunt u de klasse BadgeNotificationManager in de naamruimte Microsoft.Windows.BadgeNotifications gebruiken om badges in te stellen en te wissen. Dit is de aanbevolen methode voor Windows App SDK apps. In plaats van een XML-payload te bouwen, roept u een methode aan en geeft u een getal of een BadgeNotificationGlyph-waarde door.

Pictogram WinUI 3-galerie De WinUI 3 Gallery-app bevat interactieve voorbeelden van WinUI-besturingselementen en -functies. Haal de app op uit de Microsoft Store of blader door de broncode op GitHub.

Important

BadgeNotificationManager vereist pakketidentiteit. Als uw app geen pakketidentiteit heeft, bijvoorbeeld omdat deze niet verpakt is, veroorzaken aanroepen van SetBadgeAsCount, SetBadgeAsGlyph en ClearBadge een uitzondering. Zie een overzicht van pakketidentiteit in Windows apps voor meer informatie.

De badge wordt weergegeven op het taakbalkpictogram van uw app. Als de app is vastgemaakt aan de taakbalk, wordt de badge zelfs weergegeven wanneer de app niet wordt uitgevoerd. Gebruik de eigenschap BadgeNotificationManager om het exemplaar voor uw app op te halen.

De volgende voorbeelden zijn gebaseerd op het WinUI 3 Gallery-voorbeeld. Als u deze wilt gebruiken, voegt u een using Microsoft.Windows.BadgeNotifications; instructie toe aan uw codebestand.

Een numerieke badge instellen

Roep SetBadgeAsCount aan en geef het aantal door om weer te geven. Als het getal groter is dan 99, wordt in de badge '99+' weergegeven.

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

Een glyph-badge instellen

Roep SetBadgeAsGlyph aan en geef een BadgeNotificationGlyph waarde door. De opsommingswaarden komen overeen met de glyphs in de tabel 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);
}

Badge wissen

Roep ClearBadge aan om de badge te verwijderen. Als u een telling van 0 of het BadgeNotificationGlyph.None symbool instelt, wordt de badge ook gewist.

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

Een badge maken met de UWP BadgeUpdateManager-API

In deze voorbeelden wordt de klasse BadgeUpdateManager gebruikt in de naamruimte van Windows RuntimeWindows.UI.Notifications, die de badge-API voor UWP-apps is. U bouwt de badge als een XML-payload met behulp van de waarden in de vorige tabellen. Als uw app Windows App SDK 1.7 of hoger gebruikt, gebruik in plaats daarvan BadgeNotificationManager.

Een numerieke badge maken

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

}

Een symboolbadge maken

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

}

Een badge wissen

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

De voorbeeldcode halen