Brickmeddelanden för Windows-appar

Ett meddelandemärke förmedlar sammanfattnings- eller statusinformation som är specifik för din app. De kan vara numeriska (1–99) eller en av en uppsättning av systemspecifika glyfer. Exempel på information som bäst förmedlas via ett märke är nätverksanslutningsstatus i ett onlinespel, användarstatus i en meddelandeapp, antal olästa e-postmeddelanden i en e-postapp och antal nya inlägg i en app för sociala medier.

Meddelandeikoner visas på appens aktivitetsfältsikon och i det nedre högra hörnet av startpanelen, oavsett om appen körs. Märken kan visas på alla panelstorlekar.

Note

Du kan inte ange en egen märkesbild. endast systembaserade märkesbilder kan användas.

Numeriska märken

Value Badge XML
Ett tal från 1 till 99. Värdet 0 motsvarar glyphvärdet "none" och rensar märket. Ett numeriskt märke som är mindre än 100. <badge value="1"/>
Valfritt tal större än 99. Ett numeriskt märke större än 99. <badge value="100"/>

Glyph-märken

I stället för ett tal kan ett emblem visa en av en icke-utökningsbar uppsättning statusglypher.

Status Glyph XML
none (Inget märke visas.) <badge value="none"/>
activity Ett glyph-märke som anger statusen <badge value="activity"/>
alarm Ett glyph-märke som anger <badge value="alarm"/>
alert Ett glyph-märke som anger statusen <badge value="alert"/>
attention Ett glyph-märke som anger statusen <badge value="attention"/>
available Ett glyph-märke som anger statusen <badge value="available"/>
away Ett glyph-märke som anger statusen <badge value="away"/>
busy Ett glyph-märke som anger statusen <badge value="busy"/>
error Ett glyph-märke som anger statusen <badge value="error"/>
newMessage Ett glyph-märke som anger statusen <badge value="newMessage"/>
paused Ett glyph-märke som anger statusen <badge value="paused"/>
playing Ett glyph-märke som anger statusen <badge value="playing"/>
unavailable Ett glyph-märke som anger statusen <badge value="unavailable"/>

Ange en badge i en Windows App SDK-app

Från och med Windows App SDK 1.7 använder du klassen BadgeNotificationManager i Microsoft.Windows.BadgeNotifications namnområdet för att ange och rensa märken. Det här är den rekommenderade metoden för Windows App SDK appar. I stället för att skapa en XML-nyttolast anropar du en metod och skickar ett tal eller ett BadgeNotificationGlyph-värde .

WinUI 3-galleriikon WinUI 3-galleriappen innehåller interaktiva exempel på WinUI-kontroller och funktioner. Hämta appen från Microsoft Store eller bläddra i källkoden på GitHub.

Important

BadgeNotificationManager kräver paketidentitet. Om din app inte har paketidentitet, till exempel eftersom den är opaketerad, utlöser anrop till SetBadgeAsCount, SetBadgeAsGlyph och ClearBadge ett undantag. Mer information finns i En översikt över paketidentitet i Windows appar.

Märket visas på appens ikon i aktivitetsfältet. Om appen är fäst i aktivitetsfältet visas märket även när appen inte körs. Om du vill hämta instansen BadgeNotificationManager för din app använder du egenskapen Current.

Följande exempel baseras på WinUI 3-galleriets exempel. Om du vill använda dem lägger du till ett using Microsoft.Windows.BadgeNotifications; direktiv i kodfilen.

Ange en numerisk badge

Anropa SetBadgeAsCount och skicka numret som ska visas. Om talet är större än 99 visas märket "99+".

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

Ange ett glyfmärke

Anropa SetBadgeAsGlyph och skicka ett BadgeNotificationGlyph värde. Uppräkningsvärdena motsvarar glyferna i tabellen Glyph-emblem.

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

Rensa brickan

Anropa ClearBadge för att ta bort märket. Om antalet sätts till 0, eller glyfen BadgeNotificationGlyph.None, rensas också märket.

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

Skapa en badge med UWP BadgeUpdateManager API

I de här exemplen används klassen BadgeUpdateManager i namnområdet Windows RuntimeWindows.UI.Notifications, som är API:t för brickor i UWP-appar. Du skapar märket som en XML-nyttolast med hjälp av värdena i föregående tabeller. Om din app använder Windows App SDK 1.7 eller senare använder du BadgeNotificationManager i stället.

Skapa ett numeriskt märke

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

}

Skapa ett teckenmärke

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

}

Rensa ett märke

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

Hämta exempelkoden