Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med hjälp av ett förloppsfält i popup-meddelandet kan du förmedla statusen för långvariga åtgärder till användaren, till exempel nedladdningar, videorendering, träningsmål med mera.
Important
Kräver Creators Update och version 1.4.0 av meddelandebiblioteket: Du måste rikta in SDK 15063 och köra version 15063 eller senare för att kunna använda förloppsindikatorer på toast-notiser. Du måste använda version 1.4.0 eller senare av UWP Community Toolkit Notifications NuGet-bibliotek för att skapa förloppsindikatorn i toastmeddelandets innehåll.
Ett förloppsfält i ett toast-meddelande kan antingen vara "obestämd" (inget specifikt värde, animerade punkter indikerar att en åtgärd inträffar) eller "bestämd" (en viss procent av fältet fylls, till exempel 60%).
Viktiga API:er: NotificationData-klass, ToastNotifier.Update-metod, ToastNotification-klass
Note
Endast Desktop stöder förloppsindikatorer i toastmeddelanden. På andra enheter tas förloppsindikatorn bort från meddelandet.
Bilden nedan visar en fast förloppsindikator med alla motsvarande egenskaper märkta.
| Property | Type | Required | Description |
|---|---|---|---|
| Title | sträng eller BindableString | false | Hämtar eller anger en valfri rubriksträng. Stödjer databindning. |
| Value | double eller AdaptiveProgressBarValue eller BindableProgressBarValue | false | 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 | false | 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 | true | 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..." |
Så här genererar du meddelandet som visas ovan...
new ToastContentBuilder()
.AddText("Downloading your weekly playlist...")
.AddVisualChild(new AdaptiveProgressBar()
{
Title = "Weekly playlist",
Value = 0.6,
ValueStringOverride = "15/26 songs",
Status = "Downloading..."
});
Du måste dock dynamiskt uppdatera värdena i förloppsindikatorn så att den faktiskt är "live". Detta kan göras med hjälp av databindning för att uppdatera toast-meddelandet.
Använda databindning för att uppdatera ett popup-meddelande
Användning av databindning omfattar följande steg...
- Skapa toastmeddelande som använder databundna fält
- Tilldela en -tagg (och eventuellt en grupp) till din ToastNotification-
- Definiera dina initiala Data-värden i din ToastNotification-
- Skicka meddelande-toast
- Använda tagg och grupp för att uppdatera datavärdena med nya värden
Följande kodfragment visar steg 1–4. Nästa kodsnutt visar hur du ska uppdatera notismeddelande Data värden.
using Windows.UI.Notifications;
using Microsoft.Toolkit.Uwp.Notifications;
public void SendUpdatableToastWithProgress()
{
// Define a tag (and optionally a group) to uniquely identify the notification, in order update the notification data later;
string tag = "weekly-playlist";
string group = "downloads";
// Construct the toast content with data bound fields
var content = new ToastContentBuilder()
.AddText("Downloading your weekly playlist...")
.AddVisualChild(new AdaptiveProgressBar()
{
Title = "Weekly playlist",
Value = new BindableProgressBarValue("progressValue"),
ValueStringOverride = new BindableString("progressValueString"),
Status = new BindableString("progressStatus")
})
.GetToastContent();
// Generate the toast notification
var toast = new ToastNotification(content.GetXml());
// Assign the tag and group
toast.Tag = tag;
toast.Group = group;
// Assign initial NotificationData values
// Values must be of type string
toast.Data = new NotificationData();
toast.Data.Values["progressValue"] = "0.6";
toast.Data.Values["progressValueString"] = "15/26 songs";
toast.Data.Values["progressStatus"] = "Downloading...";
// Provide sequence number to prevent out-of-order updates, or assign 0 to indicate "always update"
toast.Data.SequenceNumber = 1;
// Show the toast notification to the user
ToastNotificationManager.CreateToastNotifier().Show(toast);
}
När du sedan vill ändra värdena för Data använder du Update-metoden för att ge nya data utan att återskapa hela toast-nyttolasten.
using Windows.UI.Notifications;
public void UpdateProgress()
{
// Construct a NotificationData object;
string tag = "weekly-playlist";
string group = "downloads";
// Create NotificationData and make sure the sequence number is incremented
// since last update, or assign 0 for updating regardless of order
var data = new NotificationData
{
SequenceNumber = 2
};
// Assign new values
// Note that you only need to assign values that changed. In this example
// we don't assign progressStatus since we don't need to change it
data.Values["progressValue"] = "0.7";
data.Values["progressValueString"] = "18/26 songs";
// Update the existing notification's data by using tag/group
ToastNotificationManager.CreateToastNotifier().Update(data, tag, group);
}
Om du använder metoden Uppdatering i stället för att ersätta hela toast-meddelandet ser du också till att toast-meddelandet förblir i samma position i åtgärdscentret och inte flyttas uppåt eller nedåt. Det skulle vara ganska förvirrande för användaren om popup-brödet fortsatte att hoppa till toppen av Action Center med några sekunders mellanrum medan förloppsindikatorn fylldes!
Metoden Update returnerar en uppräkningstyp, NotificationUpdateResult, som informerar dig om uppdateringen lyckades eller om meddelandet inte kunde hittas (vilket innebär att användaren sannolikt har stängt meddelandet och att du bör sluta skicka uppdateringar till det). Vi rekommenderar inte att du poppar ett nytt popup-meddelande förrän förloppsåtgärden har slutförts (till exempel när nedladdningen är klar).
Element som stöder databindning
Följande element i toast-aviseringar stöder databindning
- Alla egenskaper för AdaptiveProgress
- Egenskapen Text på den översta nivån AdaptiveText--element
Uppdatera eller ersätta ett meddelande
Eftersom Windows 10 kan du alltid ersätta ett meddelande genom att skicka ett nytt popup-meddelande med samma Tag och Group. Så vad är skillnaden mellan att ersätta toasten och uppdatera toastens data?
| Replacing | Updating | |
|---|---|---|
| position i Åtgärdscentrum | Flyttar meddelandet överst i Åtgärdscenter. | Lämnar meddelandet på plats i Åtgärdscenter. |
| Modifying content | Kan helt ändra allt innehåll och layout i meddelandet | Kan bara ändra egenskaper som stöder databindning (förloppsindikator och text på översta nivån) |
| Visas igen som popup | Kan visas igen som ett popup-fönster om du lämnar SuppressPopup konfigurerat som false (eller ställer in det på true för att tyst skicka det till meddelandecentret) |
Visas inte igen som ett popup-fönster; aviseringen uppdateras tyst i Handlingscenter. |
| User dismissed | Oavsett om användaren har avvisat ditt tidigare meddelande kommer ditt ersättningsmeddelande alltid att skickas. | Om användaren har stängt toast-meddelandet kommer toast-uppdateringen att misslyckas. |
I allmänhet är att uppdatera användbart för...
- Information som ofta ändras på kort tid och som inte behöver vara i fokus för användarens uppmärksamhet
- Diskreta ändringar i toastinnehållet, som att ändra 50% till 65%
När din uppdateringssekvens har slutförts (till exempel att filen har laddats ned) rekommenderar vi ofta att du ersätter för det sista steget, eftersom...
- Ditt slutliga meddelande har troligen drastiska layoutändringar, till exempel borttagning av förloppsindikatorn, tillägg av nya knappar osv.
- Användaren kan ha avvisat det väntande förloppsmeddelandet eftersom de inte bryr sig om att titta på nedladdningen, men ändå vill få ett meddelande med ett popup-fönster när åtgärden har slutförts
Related topics
Windows developer