Barre de progression des notifications d’application et liaison de données

L’utilisation d’une barre de progression à l’intérieur de votre notification d’application vous permet de transmettre l’état des opérations de longue durée à l’utilisateur, comme les téléchargements, le rendu vidéo, les objectifs d’exercice, etc.

Une barre de progression à l’intérieur d’une notification d’application peut être « indéterminée » (aucune valeur spécifique, points animés indiquent qu’une opération se produit) ou « détermina » (un pourcentage spécifique de la barre est rempli, comme 60%).

L’image ci-dessous montre une barre de progression déterminée avec toutes ses propriétés correspondantes étiquetées.

Pour plus d’informations sur les notifications d’application, consultez vue d’ensemble des notifications d’application.

Notification d’application avec les propriétés de la barre de progression étiquetées
Propriété Catégorie Obligatoire Description
Titre chaîne ou BindableString faux Obtient ou définit une chaîne de titre facultative. Prend en charge la liaison de données.
Valeur double ou AdaptiveProgressBarValue ou BindableProgressBarValue faux Obtient ou définit la valeur de la barre de progression. Prend en charge la liaison de données. La valeur par défaut est 0. Peut être un double compris entre 0,0 et 1.0, AdaptiveProgressBarValue.Indeterminateou new BindableProgressBarValue("myProgressValue").
ValueStringOverride chaîne ou BindableString faux Obtient ou définit une chaîne facultative à afficher au lieu de la chaîne de pourcentage par défaut. Si ce n’est pas fourni, quelque chose comme « 70%» s’affiche.
État chaîne ou BindableString vrai Obtient ou définit une chaîne d’état (obligatoire), qui s’affiche sous la barre de progression à gauche. Cette chaîne doit refléter l’état de l’opération, comme « Téléchargement... » ou « Installation... »

Utilisez AppNotificationBuilder.AddProgressBar pour ajouter une barre de progression à votre notification. L’exemple suivant génère la notification ci-dessus.

var builder = new AppNotificationBuilder()
    .AddText("Downloading your weekly playlist...")
    .AddProgressBar(new AppNotificationProgressBar()
        .SetTitle("Weekly playlist")
        .SetValue(0.6)
        .SetValueStringOverride("15/26 songs")
        .SetStatus("Downloading..."));

Pour mettre à jour dynamiquement les valeurs de la barre de progression, utilisez la liaison de données comme décrit dans la section suivante.

Mettre à jour une barre de progression avec liaison de données

Pour afficher une barre de progression dynamique, utilisez la liaison de données pour mettre à jour les valeurs de notification sans renvoyer la notification entière.

  1. Créez du contenu de notification avec des champs liés aux données en appelant les Bind méthodes sur AppNotificationProgressBar.
  2. Affectez une balise (et éventuellement un groupe) pour identifier la notification.
  3. Définissez les valeurs AppNotificationProgressData initiales .
  4. Affichez la notification en appelant 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);

Ensuite, mettez à jour les valeurs de progression en appelant AppNotificationManager.Default.UpdateAsync avec une nouvelle instance AppNotificationProgressData . Incrémentez le numéro de séquence afin que la plateforme sache qu’il s’agit d’une mise à jour plus récente.

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

L’utilisation de UpdateAsync plutôt que de remplacer l’intégralité de la notification garantit que la notification reste dans la même position dans le Centre de notification et ne se déplace pas vers le haut ou vers le bas. La méthode retourne un NotificationUpdateResult qui indique si la mise à jour a réussi ou si la notification n’a pas pu être trouvée (l’utilisateur peut l’avoir ignoré).

Éléments qui prennent en charge la liaison de données

Les éléments suivants dans les notifications d’application prennent en charge la liaison de données :

  • Toutes les propriétés sur AppNotificationProgressBar
  • Propriété Text sur les éléments de texte de niveau supérieur

Mettre à jour ou remplacer une notification

Vous pouvez remplacer une notification en envoyant une nouvelle notification avec la même balise et le même groupe. Le tableau suivant décrit la différence entre le remplacement et la mise à jour d’une notification.

Remplacement Mise à jour
Position dans le Centre de notification Déplace la notification en haut du Centre de notification. Laisse la notification en place dans le Centre de notification.
Modification du contenu Peut modifier complètement tout le contenu et la disposition de la notification. Peut uniquement modifier les propriétés qui prennent en charge la liaison de données (barre de progression et texte de niveau supérieur).
Réapparaître en tant que fenêtre contextuelle Peut réapparaître en tant que fenêtre contextuelle si SuppressPopup est false (ou défini à true pour l’envoyer silencieusement au Centre de Notification). Ne réapparaît pas en tant que fenêtre contextuelle ; les données de la notification sont mises à jour en mode silencieux dans le Centre de notification.
Utilisateur rejeté La notification de remplacement est toujours envoyée, que l’utilisateur ait ignoré la notification précédente. Si l’utilisateur a ignoré la notification, la mise à jour échoue.

En général, la mise à jour est utile pour les informations qui changent fréquemment et ne nécessite pas l’attention immédiate de l’utilisateur, par exemple la progression passant de 50% à 65%.

Une fois votre séquence de mises à jour terminée (par exemple, un fichier a terminé le téléchargement), envisagez de remplacer la notification pour l’étape finale, car :

  • La notification finale a probablement une disposition différente, telle que la suppression de la barre de progression ou l’ajout de nouveaux boutons.
  • L’utilisateur a peut-être ignoré la notification de progression, mais souhaite toujours voir une fenêtre contextuelle une fois l’opération terminée.

Voir également