Powiadomienia o odznakach w aplikacjach Windows

Wskaźnik powiadomienia przekazuje podsumowanie lub informacje o stanie specyficzne dla aplikacji. Mogą to być cyfry (1–99) lub jeden z zestawów glifów dostarczanych przez system. Przykłady informacji najlepiej przekazywanych za pośrednictwem wskaźnika obejmują stan połączenia sieciowego w grze online, stan użytkownika w aplikacji do obsługi wiadomości, liczbę nieprzeczytanych wiadomości w aplikacji poczty oraz liczbę nowych wpisów w aplikacji mediów społecznościowych.

Wskaźniki powiadomień są wyświetlane na ikonie paska zadań aplikacji i w prawym dolnym rogu kafelka startowego, niezależnie od tego, czy aplikacja jest uruchomiona. Znaczki mogą być wyświetlane we wszystkich rozmiarach kafelków.

Note

Nie można podać własnego obrazu znaczka; Można używać tylko obrazów znaczka dostarczonego przez system.

Znaczki liczbowe

Value Badge XML
Liczba z zakresu od 1 do 99. Wartość 0 jest równoważna wartości glifu "none" i spowoduje wyczyszczenie odznaki. oznaczenie liczbowe mniejsze niż 100. <badge value="1"/>
Dowolna liczba większa niż 99. odznaka liczbowa większa niż 99. <badge value="100"/>

Odznaki glifów

Zamiast liczby odznaka może wyświetlać jeden z ograniczonego zbioru ikon stanu.

Status Glyph XML
none (Nie pokazano przepustki.) <badge value="none"/>
działanie Odznaka glifu oznaczająca stan <badge value="activity"/>
alarm Znak glifu oznaczający stan „alarmu”. <badge value="alarm"/>
alert Odznaka glifu oznaczająca stan alertu. <badge value="alert"/>
attention Znaczek glif oznaczający stan <badge value="attention"/>
available Znaczek glif oznaczający stan <badge value="available"/>
away Odznaka glifu oznaczająca stan <badge value="away"/>
busy Znaczek glif oznaczający stan <badge value="busy"/>
błąd Znaczek glif oznaczający stan <badge value="error"/>
newMessage Znaczek glif oznaczający stan <badge value="newMessage"/>
paused Odznaka glifu oznaczająca stan „wstrzymany”. <badge value="paused"/>
playing Emblemat glifu oznaczający stan odtwarzania. <badge value="playing"/>
unavailable Wskaźnik glif oznaczający stan <badge value="unavailable"/>

Ustawianie badżu w aplikacji Zestaw SDK do aplikacji systemu Windows

Począwszy od Zestaw SDK do aplikacji systemu Windows 1.7, użyj klasy BadgeNotificationManager w Microsoft.Windows.BadgeNotifications przestrzeni nazw, aby ustawić i wyczyścić znaczki. Jest to zalecane podejście do Zestaw SDK do aplikacji systemu Windows aplikacji. Zamiast tworzyć ładunek danych XML, wywołujesz metodę i przekazujesz liczbę lub wartość BadgeNotificationGlyph.

Ikona galerii WinUI 3 Aplikacja Galeria WinUI 3 zawiera interaktywne przykłady kontrolek i funkcji WinUI. Pobierz aplikację z Microsoft Store lub przejrzyj kod źródłowy w GitHub.

Important

BadgeNotificationManager wymaga identyfikatora pakietu. Jeśli aplikacja nie ma tożsamości pakietu, na przykład ponieważ jest rozpakowana, wywołania metod SetBadgeAsCount, SetBadgeAsGlyph i ClearBadge zgłaszają wyjątek. Aby uzyskać więcej informacji, zobacz Omówienie tożsamości pakietu w aplikacjach Windows.

Plakietka pojawia się na ikonie paska zadań aplikacji. Jeśli aplikacja jest przypięta do paska zadań, wskaźnik jest wyświetlany nawet wtedy, gdy aplikacja nie jest uruchomiona. Aby pobrać BadgeNotificationManager instancję aplikacji, użyj właściwości Current.

Poniższe przykłady są oparte na przykładzie z galerii WinUI 3. Aby ich używać, dodaj dyrektywę using Microsoft.Windows.BadgeNotifications; do pliku kodu.

Ustaw wskaźnik liczbowy

Wywołaj metodę SetBadgeAsCount i przekaż liczbę do wyświetlenia. Jeśli liczba jest większa niż 99, wskaźnik pokazuje "99+".

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

Ustaw odznakę glifu

Wywołaj metodę BadgeNotificationGlyph i przekaż wartość . Wartości wyliczenia odpowiadają glifom w tabeli Odznaki glifów.

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

Wyczyść odznakę

Wywołaj ClearBadge, aby usunąć odznakę. Ustawienie liczby 0 lub glifu BadgeNotificationGlyph.None powoduje również wyczyszczenie wskaźnika.

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

Tworzenie plakietki za pomocą interfejsu API BadgeUpdateManager platformy UWP

W tych przykładach użyto klasy BadgeUpdateManager w przestrzeni nazw środowisko wykonawcze systemu WindowsWindows.UI.Notifications, która jest interfejsem API plakietek dla aplikacji platformy UWP. Tworzysz odznakę jako ładunek XML przy użyciu wartości w poprzednich tabelach. Jeśli aplikacja używa Zestaw SDK do aplikacji systemu Windows 1.7 lub nowszej, użyj zamiast tego elementu BadgeNotificationManager.

Utwórz odznakę liczbową

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

}

Utwórz odznakę glifu

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

}

Wyczyść odznakę

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

Pobieranie przykładowego kodu