Oznámení na odznacích pro aplikace Windows

Odznak upozornění poskytuje souhrnné informace nebo informace o stavu specifické pro vaší aplikaci. Můžou to být číselné (1–99) nebo jedna ze sady systémových glyfů. Mezi příklady informací, které se nejlépe předávají prostřednictvím odznáčku, patří stav připojení k síti v online hře, stav uživatele v aplikaci pro zasílání zpráv, počet nepřečtených e-mailů v poštovní aplikaci a počet nových příspěvků v aplikaci sociálních médií.

Oznámení se zobrazí na ikoně hlavního panelu vaší aplikace a v pravém dolním rohu úvodní dlaždice bez ohledu na to, jestli je aplikace spuštěná. Odznáčky se dají zobrazit na všech velikostech dlaždic.

Note

Nemůžete zadat vlastní odznáček; Lze použít pouze obrázky odznáček poskytované systémem.

Číselné odznáčky

Value Badge jazyk XML
Číslo od 1 do 99. Hodnota 0 je ekvivalentní hodnotě glyf "none" a vymaže odznáček. číselný odznáček menší než 100. <badge value="1"/>
Libovolné číslo větší než 99. Číselný odznáček větší než 99. <badge value="100"/>

Odznáčky Glyph

Místo čísla může odznáček zobrazit jednu z ne rozšiřitelných množiny stavových glyfů.

Status Glyph jazyk XML
none (Žádný odznáček nezobrazen.) <badge value="none"/>
aktivita Odznáček glyph označující stav <badge value="activity"/>
alarm Odznáček glyph označující stav <badge value="alarm"/>
oznámení Odznáček glyph označující stav upozornění. <badge value="alert"/>
attention Odznáček glyph označující stav <badge value="attention"/>
available Odznáček glyph označující stav <badge value="available"/>
away Odznáček symbolu označující stav „pryč“. <badge value="away"/>
busy Odznáček glyph označující stav zaneprázdnění. <badge value="busy"/>
chyba Odznáček glyph označující stav <badge value="error"/>
newMessage Odznáček glyph označující stav newMessage. <badge value="newMessage"/>
paused Odznáček glyph označující stav pozastaveno. <badge value="paused"/>
playing Odznáček glyph označující stav <badge value="playing"/>
unavailable Odznáček glyph označující stav <badge value="unavailable"/>

Nastavte odznak v aplikaci Windows App SDK

Počínaje Windows App SDK 1.7 použijte třídu BadgeNotificationManager v Microsoft.Windows.BadgeNotifications oboru názvů k nastavení a vymazání symbolů. Tento přístup se doporučuje pro Windows App SDK aplikace. Místo sestavení datové části XML zavoláte metodu a předáte číslo nebo hodnotu BadgeNotificationGlyph .

Ikona galerie WinUI 3 Aplikace Galerie WinUI 3 obsahuje interaktivní příklady ovládacích prvků a funkcí WinUI. Získejte aplikaci z Microsoft Store nebo vyhledejte zdrojový kód na GitHub.

Important

BadgeNotificationManager vyžaduje identitu balíčku. Pokud vaše aplikace nemá identitu balíčku, například proto, že není zabalená, volání funkcí SetBadgeAsCount, SetBadgeAsGlyph a ClearBadge vyvolají výjimku. Další informace najdete v přehledu identity balíčku v aplikacích Windows.

Odznáček se zobrazí na ikoně hlavního panelu vaší aplikace. Pokud je aplikace připnutá na hlavní panel, zobrazí se odznáček i v případě, že aplikace není spuštěná. Pokud chcete získat instanci BadgeNotificationManager pro vaši aplikaci, použijte vlastnost Current.

Následující příklady jsou založené na ukázce galerie WinUI 3. Chcete-li je použít, přidejte do souboru kódu direktivu using Microsoft.Windows.BadgeNotifications;.

Nastavte číselný odznak

Zavolejte SetBadgeAsCount a předejte číslo, které se má zobrazit. Pokud je číslo větší než 99, zobrazí se odznáček "99+".

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

Nastavit odznak glyfu

Zavolejte SetBadgeAsGlyph a předejte hodnotu BadgeNotificationGlyph. Hodnoty výčtu odpovídají glyfům v tabulce odznaky Glyph.

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

Vymazat odznak

Spusťte ClearBadge a odeberte indikátor. Nastavení počtu 0 nebo glyfu BadgeNotificationGlyph.None také vymaže odznáček.

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

Vytvoření odznáčku pomocí rozhraní API BadgeUpdateManager pro UWP

Tyto příklady používají třídu BadgeUpdateManager v oboru názvů prostředí Windows Runtime Windows.UI.Notifications, což je rozhraní API pro odznaky pro aplikace UWP. Odznak vytvoříte jako datovou zátěž XML s použitím hodnot v předchozích tabulkách. Pokud vaše aplikace používá Windows App SDK 1.7 nebo novější, použijte místo toho BadgeNotificationManager.

Vytvořte číselný odznak

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

}

Vytvořit symbolický odznáček

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

}

Vymazání odznaku

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

Získání ukázkového kódu