Förloppsindikator för appmeddelanden och databindning

Med hjälp av ett förloppsfält i appmeddelandet kan du förmedla statusen för långvariga åtgärder till användaren, till exempel nedladdningar, videorendering, träningsmål med mera.

Ett förloppsfält i en appavisering kan antingen vara "obestämd" (inget specifikt värde, animerade punkter indikerar att en åtgärd inträffar) eller "determinate" (en viss procent av fältet fylls, till exempel 60%).

Bilden nedan visar en determinerad förloppsindikator med alla dess motsvarande egenskaper märkta.

Mer information om appaviseringar finns i Översikt över appaviseringar.

Appmeddelande med förloppsindikatoregenskaper märkta
Fastighet Type Obligatoriskt Beskrivning
Titel sträng eller BindableString falsk Hämtar eller anger en valfri rubriksträng. Stödjer databindning.
Value double eller AdaptiveProgressBarValue eller BindableProgressBarValue falsk Hämtar eller anger värdet för förloppsindikatorn. Stödjer databindning. Ställs in på 0. Kan antingen vara en dubbel mellan 0,0 och 1,0, AdaptiveProgressBarValue.Indeterminateeller new BindableProgressBarValue("myProgressValue").
ValueStringOverride sträng eller BindableString falsk Hämtar eller anger en valfri sträng som ska visas i stället för standardprocentsträngen. Om detta inte anges visas något i stil med "70%".
Status sträng eller BindableString sann Hämtar eller anger en statussträng (krävs) som visas under förloppsindikatorn till vänster. Den här strängen bör återspegla statusen för åtgärden, till exempel "Ladda ned..." eller "Installera..."

Använd AppNotificationBuilder.AddProgressBar för att lägga till ett förloppsfält i meddelandet. I följande exempel genereras meddelandet som visas ovan.

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

Om du vill uppdatera förloppsindikatorns värden dynamiskt använder du databindningen enligt beskrivningen i nästa avsnitt.

Uppdatera en förloppsindikator med databindning

Om du vill visa en live-förloppsindikator använder du databindningen för att uppdatera meddelandevärdena utan att skicka hela meddelandet igen.

  1. Skapa meddelandeinnehåll med databundna fält genom att anropa metoderna i BindAppNotificationProgressBar.
  2. Tilldela en tagg (och eventuellt en grupp) för att identifiera meddelandet.
  3. Ange de första AppNotificationProgressData-värdena .
  4. Visa meddelandet genom att anropa 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);

Uppdatera sedan förloppsvärdena genom att anropa AppNotificationManager.Default.UpdateAsync med en ny AppNotificationProgressData-instans . Öka sekvensnumret så att plattformen vet att det här är en nyare uppdatering.

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

Om du använder UpdateAsync i stället för att ersätta hela meddelandet ser du till att meddelandet förblir i samma position i Meddelandecenter och inte flyttas uppåt eller nedåt. Metoden returnerar en NotificationUpdateResult som anger om uppdateringen lyckades eller om meddelandet inte kunde hittas (användaren kan ha avvisat den).

Element som stöder databindning

Följande element i appmeddelanden stöder databindning:

  • Alla egenskaper i AppNotificationProgressBar
  • Egenskapen Text i textelementen på den översta nivån

Uppdatera eller ersätta ett meddelande

Du kan ersätta ett meddelande genom att skicka ett nytt meddelande med samma tagg och grupp. I följande tabell beskrivs skillnaden mellan att ersätta och uppdatera ett meddelande.

Utbyte Uppdatera
Position i Meddelandecenter Flyttar meddelandet överst i Meddelandecenter. Lämnar meddelandet på plats i Meddelandecenter.
Ändra innehåll Kan helt ändra allt innehåll och layout för meddelandet. Det går bara att ändra egenskaper som stöder databindning (förloppsindikator och text på den översta nivån).
Visas igen som popup-meny Kan visas igen som ett popup-fönster om SuppressPopup är false (eller inställt på att true tyst skicka det till Notification Center). Visas inte igen som ett popup-fönster. meddelandets data uppdateras tyst i Notification Center.
Användaren har stängts Ersättningsmeddelande skickas alltid oavsett om användaren har avvisat föregående meddelande. Om användaren avvisade meddelandet misslyckas uppdateringen.

I allmänhet är uppdatering användbar för information som ändras ofta och inte kräver användarens omedelbara uppmärksamhet, till exempel förlopp som ändras från 50% till 65%.

När din sekvens med uppdateringar har slutförts (till exempel att en fil har laddats ned) bör du överväga att ersätta meddelandet för det sista steget eftersom:

  • Det slutliga meddelandet har troligen en annan layout, till exempel borttagning av förloppsindikatorn eller tillägg av nya knappar.
  • Användaren kan ha avvisat förloppsmeddelandet men vill ändå se ett popup-fönster när åtgärden är klar.

Se även