Уведомления о значках для приложений Windows

Значок уведомления передает сводку или сведения о состоянии, относящиеся к приложению. Они могут быть числовыми (1-99) или одним из наборов глифов, предоставляемых системой. Примеры сведений, которые лучше всего передаются с помощью значка, включают состояние сетевого подключения в онлайн-игре, состояние пользователя в приложении для обмена сообщениями, количество непрочитанных сообщений в почтовом приложении и количество новых записей в приложении социальных сетей.

Индикаторы уведомлений отображаются на значке панели задач приложения и в правом нижнем углу начальной плитки независимо от того, запущено ли приложение. Значки можно отображать на всех размерах плиток.

Замечание

Вы не можете указать свой собственный образ значка; Можно использовать только образы эмблемы, предоставляемые системой.

Числовые значки

Ценность Значок XML
Число от 1 до 99. Значение 0 эквивалентно значению глифа none и очищает значок. Числовой значок меньше 100. <badge value="1"/>
Любое число больше 99. Числовой значок, превышающий 99. <badge value="100"/>

Эмблемы Глифа

Вместо числа значок может отображать один из не расширяемых наборов глифов состояния.

Состояние Глиф XML
none (Значок не показан.) <badge value="none"/>
активность Значок глифа, обозначающий состояние действия. <badge value="activity"/>
тревога Значок, обозначающий состояние <badge value="alarm"/>
предупреждение Значок глифа, обозначающий состояние <badge value="alert"/>
внимание Значок глифа, обозначающий состояние <badge value="attention"/>
доступен Значок глифа, обозначающий состояние <badge value="available"/>
прочь Значок глифа, обозначающий состояние <badge value="away"/>
занятый Значок глифа, обозначающий состояние <badge value="busy"/>
ошибка Значок глифа, обозначающий состояние ошибки. <badge value="error"/>
новоеСообщение Значок, обозначающий статус 'новоеСообщение'. <badge value="newMessage"/>
Приостановлено Значок глифа, обозначающий состояние <badge value="paused"/>
играющий Значок глифа, обозначающий состояние <badge value="playing"/>
недоступный Значок глифа, обозначающий состояние <badge value="unavailable"/>

Установка бейджа в приложении Windows App SDK

Начиная с Windows App SDK 1.7, используйте класс BadgeNotificationManager в пространстве имен Microsoft.Windows.BadgeNotifications для задания и очистки значков уведомлений. Это рекомендуемый подход для приложений Windows App SDK. Вместо создания полезных данных XML вызывается метод и передается число или значение BadgeNotificationGlyph .

Значок коллекции WinUI 3 Приложение WinUI 3 Gallery содержит интерактивные примеры элементов управления и функций WinUI. Получите приложение из Microsoft Store или просмотрите исходный код в GitHub.

Important

BadgeNotificationManager требуется идентификатор пакета. Если у приложения нет удостоверения пакета, например потому что оно не упаковано, вызовы SetBadgeAsCount, SetBadgeAsGlyph и ClearBadge вызывают исключение. Дополнительные сведения см. в разделе "Общие сведения об идентификации пакета" в приложениях Windows.

Значок появляется на значке приложения на панели задач. Если приложение закреплено на панели задач, значок отображается даже в том случае, если приложение не запущено. Чтобы получить экземпляр BadgeNotificationManager для вашего приложения, используйте свойство Current.

Следующие примеры основаны на образце Gallery для WinUI 3. Чтобы использовать их, добавьте директиву using Microsoft.Windows.BadgeNotifications; в файл кода.

Установить числовой значок

Вызовите SetBadgeAsCount и передайте число для отображения. Если число больше 99, значок отображает "99+".

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

Установить значок глифа

Вызовите SetBadgeAsGlyph и передайте значение BadgeNotificationGlyph. Значения перечисления соответствуют глифам в таблице значки глифов.

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

Очистить значок

Вызовите метод ClearBadge, чтобы удалить значок. Задание количества 0 или глифа BadgeNotificationGlyph.None также очищает значок.

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

Создание значка с помощью API UWP BadgeUpdateManager

В этих примерах используется класс BadgeUpdateManager в пространстве имен среда выполнения WindowsWindows.UI.Notifications, который является API бейджей для приложений UWP. Вы создаете бейдж в виде XML-документа, используя значения из предыдущих таблиц. Если приложение использует Windows App SDK версии 1.7 или более поздней версии, используйте BadgeNotificationManager.

Создание числового значка

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

}

Создание значка глифа

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

}

Очистка значка

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

Получите пример кода