Abzeichenbenachrichtigungen für Windows-Apps

Ein Benachrichtigungsabzeichen zeigt Zusammenfassungs- oder Statusinformationen an, die spezifisch für Ihre App sind. Sie können eine Ziffer (1-99) oder eines der vom System bereitgestellten Glyphen sein. Beispiele für Informationen, die am besten über ein Badge vermittelt werden, sind der Status der Netzwerkverbindung in einem Onlinespiel, der Benutzerstatus in einer Messaging-App, die Anzahl ungelesener E-Mails in einer Mail-App und die Anzahl neuer Beiträge in einer Social-Media-App.

Benachrichtigungssignale werden auf dem Taskleistensymbol Ihrer App und in der unteren rechten Ecke der Startkachel angezeigt, unabhängig davon, ob die App ausgeführt wird. Signale können auf allen Kachelgrößen angezeigt werden.

Note

Sie können ihr eigenes Signalbild nicht bereitstellen; Nur vom System bereitgestellte Signalbilder können verwendet werden.

Numerische Abzeichen

Value Badge XML
Eine Zahl von 1 bis 99. Ein Wert von 0 entspricht dem Glyphenwert "keiner" und löscht das Abzeichen. Ein numerisches Signal kleiner als 100. <badge value="1"/>
Eine beliebige Zahl, die größer als 99 ist. Ein numerisches Signal größer als 99. <badge value="100"/>

Glyph-Abzeichen

Anstelle einer Zahl kann ein Abzeichen eine nicht erweiterbare Menge von Statussymbolen anzeigen.

Status Glyph XML
none (Es wird kein Abzeichen angezeigt.) <badge value="none"/>
activity Ein Glyphensignal, das den Status <badge value="activity"/>
alarm Ein Glyphensignal, das den Status <badge value="alarm"/>
alert Ein Glyphensignal, das den Status <badge value="alert"/>
attention Ein Glyphensignal, das den Status <badge value="attention"/>
available Ein Glyphensignal, das den Status <badge value="available"/>
away Ein Glyphensignal, das den Status <badge value="away"/>
busy Ein Glyphensignal, das den Status <badge value="busy"/>
error Ein Glyphensignal, das den Status <badge value="error"/>
newMessage Ein Glyphensignal, das den Status <badge value="newMessage"/>
paused Ein Glyphensignal, das den Status <badge value="paused"/>
playing Ein Glyphenabzeichen, das den Status 'wird gespielt' angibt. <badge value="playing"/>
unavailable Ein Glyphensignal, das den Status <badge value="unavailable"/>

Festlegen eines Badges in einer Windows App SDK-App

Verwenden Sie ab Windows App SDK 1.7 die BadgeNotificationManager-Klasse im Microsoft.Windows.BadgeNotifications Namespace, um Badges festzulegen und zu löschen. Dies ist der empfohlene Ansatz für Windows App SDK Apps. Anstatt eine XML-Nutzlast zu erstellen, rufen Sie eine Methode auf und übergeben eine Zahl oder einen BadgeNotificationGlyph-Wert.

WinUI 3-Katalogsymbol Die WinUI 3 Gallery-App enthält interaktive Beispiele für WinUI-Steuerelemente und -Features. Rufen Sie die App aus dem Microsoft Store ab, oder durchsuchen Sie den Quellcode auf GitHub.

Important

BadgeNotificationManager benötigt eine Paketidentität. Wenn Ihre App keine Paketidentität aufweist, z. B. weil sie nicht paketiert ist, führen Aufrufe von SetBadgeAsCount, SetBadgeAsGlyph und ClearBadge zu einer Ausnahme. Weitere Informationen finden Sie unter "Übersicht über die Paketidentität" in Windows-Apps.

Das Badge wird auf dem Taskleistensymbol Ihrer App angezeigt. Wenn die App an die Taskleiste angeheftet ist, wird das Badge auch dann angezeigt, wenn die App nicht ausgeführt wird. Verwenden Sie die Eigenschaft BadgeNotificationManager, um die Instanz für Ihre App abzurufen.

Die folgenden Beispiele basieren auf dem WinUI 3 Gallery-Beispiel. Um sie zu verwenden, fügen Sie zu Ihrer Codedatei eine using Microsoft.Windows.BadgeNotifications; Direktive hinzu.

Festlegen eines numerischen Signals

Rufen Sie SetBadgeAsCount auf, und übergeben Sie die anzuzeigende Nummer. Wenn die Zahl größer als 99 ist, zeigt das Badge "99+" an.

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

Festlegen eines Glyphensignals

Rufen Sie SetBadgeAsGlyph auf, und übergeben Sie einen BadgeNotificationGlyph Wert. Die Aufzählungswerte entsprechen den Glyphen in der Tabelle 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);
}

Löschen des Signals

Rufen Sie ClearBadge auf, um das Signal zu entfernen. Wenn Sie die Anzahl 0 oder die BadgeNotificationGlyph.None Glyphe festlegen, wird auch das Badge gelöscht.

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

Erstellen Sie ein Badge mit der UWP BadgeUpdateManager-API

In diesen Beispielen wird die BadgeUpdateManager-Klasse im Windows-Runtime Windows.UI.Notifications Namespace verwendet, bei der es sich um die Badge-API für UWP-Apps handelt. Sie erstellen das Badge als XML-Nutzlast, wobei die Werte in den vorherigen Tabellen verwendet werden. Wenn Ihre App Windows App SDK 1.7 oder höher verwendet, verwenden Sie stattdessen BadgeNotificationManager.

Ein numerisches Badge erstellen

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

}

Erstellen eines Glyphenabzeichens

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

}

Löschen eines Signals

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

Holen Sie sich den Beispielcode