Notificaciones de distintivos para aplicaciones de Windows

Una insignia de notificación transmite información de resumen o estado específica de tu aplicación. Pueden ser numéricos (1-99) o uno de un conjunto de glifos proporcionados por el sistema. Algunos ejemplos de información que mejor se transmiten a través de un distintivo incluyen el estado de conexión de red en un juego en línea, el estado del usuario en una aplicación de mensajería, el número de correos no leídos en una aplicación de correo y el número de nuevas publicaciones en una aplicación de redes sociales.

Los distintivos de notificación aparecen en el icono de la barra de tareas de la aplicación y en la esquina inferior derecha del icono de inicio, independientemente de si la aplicación se está ejecutando. Las insignias se pueden mostrar en todos los tamaños de mosaico.

Note

No puede proporcionar su propia imagen de distintivo; solo se pueden usar imágenes de distintivo proporcionadas por el sistema.

Emblemas numéricos

Value Badge XML
Número comprendido entre 1 y 99. Un valor de 0 es equivalente al valor del glifo “none” y borrará la insignia. un distintivo numérico inferior a 100. <badge value="1"/>
Cualquier número mayor que 99. un distintivo numérico mayor que 99. <badge value="100"/>

Distintivos de glifo

En lugar de un número, una insignia puede exhibir uno de un conjunto no extensible de glifos de estado.

Status Glyph XML
none (No se muestra ninguna insignia). <badge value="none"/>
activity Distintivo de glifo que indica el estado de <badge value="activity"/>
alarm Un distintivo de glifo que indica el estado de la <badge value="alarm"/>
alert Insignia de glifo que indica el estado de «alerta». <badge value="alert"/>
attention Distintivo de glifo que indica el estado de <badge value="attention"/>
available Distintivo de glifo que indica el estado <badge value="available"/>
away Una insignia de glifo que denota el estado <badge value="away"/>
busy Distintivo de glifo que indica el estado <badge value="busy"/>
error Distintivo de glifo que indica el estado <badge value="error"/>
newMessage Distintivo de glifo que indica el estado <badge value="newMessage"/>
paused Distintivo de glifo que indica el estado <badge value="paused"/>
playing Distintivo de glifo que indica el estado <badge value="playing"/>
unavailable Distintivo de glifo que indica el estado <badge value="unavailable"/>

Establecer un distintivo en una aplicación de SDK de Aplicaciones para Windows

A partir de SDK de Aplicaciones para Windows 1.7, use la clase BadgeNotificationManager en el Microsoft.Windows.BadgeNotifications espacio de nombres para establecer y borrar distintivos. Este es el enfoque recomendado para aplicaciones de SDK de Aplicaciones para Windows. En lugar de crear una carga XML, se llama a un método y se pasa un número o un valor BadgeNotificationGlyph .

Icono de la galería de WinUI 3 La aplicación Galería de WinUI 3 incluye ejemplos interactivos de características y controles winUI. Obtenga la aplicación desde el Microsoft Store o busque el código fuente en GitHub.

Importante

BadgeNotificationManager requiere la identidad del paquete. Si la aplicación no tiene identidad de paquete, por ejemplo, porque no está empaquetada, las llamadas a SetBadgeAsCount, SetBadgeAsGlyph y ClearBadge generan una excepción. Para obtener más información, consulta Introducción a la identidad del paquete en aplicaciones de Windows.

La insignia aparece en el icono de la barra de tareas de la aplicación. Si la aplicación está anclada a la barra de tareas, el distintivo aparece incluso cuando la aplicación no se está ejecutando. Para obtener la BadgeNotificationManager instancia de la aplicación, use la propiedad Current .

Los ejemplos siguientes se basan en el ejemplo de la galería de WinUI 3. Para usarlos, agregue una using Microsoft.Windows.BadgeNotifications; directiva a su archivo de código.

Establecer una insignia numérica

Llame a SetBadgeAsCount y pase el número que se va a mostrar. Si el número es mayor que 99, el indicador muestra "99+".

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

Configurar una insignia de glifo

Llame a SetBadgeAsGlyph y pase un BadgeNotificationGlyph valor. Los valores de enumeración corresponden a los glifos de la tabla de distintivos de glifo .

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

Borrar el distintivo

Llame a ClearBadge para quitar el distintivo. Al establecer un recuento de 0 o el BadgeNotificationGlyph.None glifo, también se borra el distintivo.

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

Crear un distintivo con la API de BadgeUpdateManager para UWP

Estos ejemplos usan la clase BadgeUpdateManager en el espacio de nombres Windows RuntimeWindows.UI.Notifications, que es la API de distintivo para aplicaciones para UWP. El distintivo se crea como una carga XML mediante los valores de las tablas anteriores. Si la aplicación usa SDK de Aplicaciones para Windows 1.7 o posterior, use BadgeNotificationManager en su lugar.

Creación de un distintivo numérico

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

}

Crear un distintivo de glifo

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

}

Borrar un distintivo

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

Obtención del código de ejemplo