Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El uso de una barra de progreso dentro de la notificación de la aplicación permite transmitir el estado de las operaciones de ejecución prolongada al usuario, como descargas, representación de vídeo, objetivos de ejercicio, etc.
Una barra de progreso dentro de una notificación de aplicación puede ser "indeterminada" (ningún valor específico, los puntos animados indican que se está produciendo una operación) o "determinado" (se rellena un porcentaje específico de la barra, como 60%).
En la imagen siguiente se muestra una barra de progreso determinada con todas sus propiedades correspondientes etiquetadas.
Para obtener más información sobre las notificaciones de la aplicación, consulte Introducción a las notificaciones de aplicaciones.
| Propiedad | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Título | cadena o BindableString | false | Obtiene o establece una cadena de título opcional. Admite la vinculación de datos. |
| Valor | double o AdaptiveProgressBarValue o BindableProgressBarValue | false | Obtiene o establece el valor de la barra de progreso. Admite la vinculación de datos. El valor predeterminado es 0. Puede ser un doble entre 0,0 y 1,0, AdaptiveProgressBarValue.Indeterminateo new BindableProgressBarValue("myProgressValue"). |
| ValueStringOverride | cadena o BindableString | false | Obtiene o establece una cadena opcional que se va a mostrar en lugar de la cadena de porcentaje predeterminada. Si no se proporciona esto, se mostrará algo parecido a "70%". |
| Estado | cadena o BindableString | verdadero | Obtiene o establece una cadena de estado (obligatorio), que se muestra debajo de la barra de progreso de la izquierda. Esta cadena debe reflejar el estado de la operación, como "Descargar..." o "Instalar..." |
Use AppNotificationBuilder.AddProgressBar para agregar una barra de progreso a la notificación. En el ejemplo siguiente se genera la notificación mostrada anteriormente.
var builder = new AppNotificationBuilder()
.AddText("Downloading your weekly playlist...")
.AddProgressBar(new AppNotificationProgressBar()
.SetTitle("Weekly playlist")
.SetValue(0.6)
.SetValueStringOverride("15/26 songs")
.SetStatus("Downloading..."));
Para actualizar dinámicamente los valores de la barra de progreso, use el enlace de datos como se describe en la sección siguiente.
Actualizar una barra de progreso con vinculación de datos
Para mostrar una barra de progreso activa, use el enlace de datos para actualizar los valores de notificación sin volver a enviar toda la notificación.
- Construya contenido de notificación con campos enlazados a datos llamando a los
Bindmétodos en AppNotificationProgressBar. - Asigne una etiqueta (y, opcionalmente, un grupo) para identificar la notificación.
- Establezca los valores iniciales de AppNotificationProgressData .
- Muestre la notificación llamando a AppNotificationManager.Default.Show.
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;
string tag = "weekly-playlist";
string group = "downloads";
var builder = new AppNotificationBuilder()
.AddText("Downloading your weekly playlist...")
.AddProgressBar(new AppNotificationProgressBar()
.BindTitle()
.BindValue()
.BindValueStringOverride()
.BindStatus());
var notification = builder.BuildNotification();
notification.Tag = tag;
notification.Group = group;
notification.Progress = new AppNotificationProgressData(1)
{
Title = "Weekly playlist",
Value = 0.6,
ValueStringOverride = "15/26 songs",
Status = "Downloading..."
};
AppNotificationManager.Default.Show(notification);
A continuación, actualice los valores de progreso llamando a AppNotificationManager.Default.UpdateAsync con una nueva instancia de AppNotificationProgressData . Incremente el número de secuencia para que la plataforma sepa que se trata de una actualización más reciente.
using Microsoft.Windows.AppNotifications;
string tag = "weekly-playlist";
string group = "downloads";
var data = new AppNotificationProgressData(2)
{
Value = 0.7,
ValueStringOverride = "18/26 songs"
};
await AppNotificationManager.Default.UpdateAsync(data, tag, group);
El uso de UpdateAsync en lugar de reemplazar toda la notificación garantiza que la notificación permanezca en la misma posición en el Centro de notificaciones y no se mueva hacia arriba o hacia abajo. El método devuelve un NotificationUpdateResult que indica si la actualización se realizó correctamente o si no se encontró la notificación (es posible que el usuario la haya descartado).
Elementos que admiten el enlace de datos
Los siguientes elementos de las notificaciones de la aplicación admiten el enlace de datos:
- Todas las propiedades de AppNotificationProgressBar
- La propiedad Text en los elementos de texto de nivel superior
Actualizar o reemplazar una notificación
Puede reemplazar una notificación enviando una nueva notificación con la misma etiqueta y grupo. En la tabla siguiente se describe la diferencia entre reemplazar y actualizar una notificación.
| Reemplazar | Actualización | |
|---|---|---|
| Posición en el Centro de notificaciones | Mueve la notificación a la parte superior del Centro de notificaciones. | Deja la notificación en su lugar en el Centro de notificaciones. |
| Modificación del contenido | Puede cambiar completamente todo el contenido y el diseño de la notificación. | Solo se pueden cambiar las propiedades que admiten el enlace de datos (barra de progreso y texto de nivel superior). |
| Volver a aparecer como ventana emergente | Puede volver a aparecer como un elemento emergente si SuppressPopup es false (o se establece en true para enviarlo de forma silenciosa al Centro de notificaciones). |
No reaparecerá como un elemento emergente; los datos de la notificación se actualizan silenciosamente en el Centro de notificaciones. |
| El usuario ha descartado | La notificación de reemplazo siempre se envía independientemente de si el usuario descartó la notificación anterior. | Si el usuario descartó la notificación, se producirá un error en la actualización. |
En general, la actualización es útil para obtener información que cambia con frecuencia y no requiere la atención inmediata del usuario, como el progreso que cambia de 50% a 65%.
Una vez completada la secuencia de actualizaciones (por ejemplo, un archivo ha terminado de descargarse), considere la posibilidad de reemplazar la notificación para el paso final porque:
- Es probable que la notificación final tenga un diseño diferente, como la eliminación de la barra de progreso o la adición de botones nuevos.
- Es posible que el usuario haya descartado la notificación de progreso, pero desea ver un elemento emergente cuando se complete la operación.