Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Użycie paska postępu w powiadomieniu aplikacji umożliwia przekazanie użytkownikowi stanu długotrwałych operacji, takich jak pobieranie, renderowanie wideo, cele ćwiczeń i nie tylko.
Pasek postępu w powiadomieniu aplikacji może być "nieokreślony" (brak określonej wartości, animowane kropki wskazują, że operacja jest wykonywana) lub "determinate" (określony procent paska jest wypełniony, na przykład 60%).
Na poniższej ilustracji przedstawiono pasek postępu o ustalonym zakresie ze wszystkimi odpowiednimi właściwościami oznaczonymi.
Aby uzyskać więcej informacji na temat powiadomień aplikacji, zobacz Omówienie powiadomień aplikacji.
| Majątek | Typ | Required | Opis |
|---|---|---|---|
| Nazwa | Ciąg lub BindableString | fałszywy | Pobiera lub ustawia opcjonalny ciąg tytułu. Obsługuje powiązanie danych. |
| Wartość | double lub AdaptiveProgressBarValue lub BindableProgressBarValue | fałszywy | Pobiera lub ustawia wartość paska postępu. Obsługuje powiązanie danych. Wartość domyślna to 0. Może być podwójne z zakresu od 0.0 do 1.0, AdaptiveProgressBarValue.Indeterminatelub new BindableProgressBarValue("myProgressValue"). |
| ValueStringOverride | Ciąg lub BindableString | fałszywy | Pobiera lub ustawia opcjonalny ciąg, który ma być wyświetlany zamiast domyślnego ciągu procentowego. Jeśli to nie zostanie podane, zostanie wyświetlony komunikat podobny do "70%". |
| Status | Ciąg lub BindableString | true | Pobiera lub ustawia ciąg stanu (wymagany), który jest wyświetlany pod paskiem postępu po lewej stronie. Ten ciąg powinien odzwierciedlać stan operacji, na przykład "Pobieranie..." lub "Instalowanie..." |
Użyj elementu AppNotificationBuilder.AddProgressBar , aby dodać pasek postępu do powiadomienia. Poniższy przykład generuje powiadomienie pokazane powyżej.
var builder = new AppNotificationBuilder()
.AddText("Downloading your weekly playlist...")
.AddProgressBar(new AppNotificationProgressBar()
.SetTitle("Weekly playlist")
.SetValue(0.6)
.SetValueStringOverride("15/26 songs")
.SetStatus("Downloading..."));
Aby dynamicznie aktualizować wartości paska postępu, użyj powiązania danych zgodnie z opisem w następnej sekcji.
Aktualizowanie paska postępu za pomocą powiązania danych
Aby wyświetlić pasek postępu na żywo, użyj powiązania danych, aby zaktualizować wartości powiadomień bez ponownego wysyłania całego powiadomienia.
- Konstruowanie zawartości powiadomień przy użyciu pól powiązanych z danymi przez wywołanie
Bindmetod na pasku AppNotificationProgressBar. - Przypisz tag (i opcjonalnie grupę), aby zidentyfikować powiadomienie.
- Ustaw początkowe wartości AppNotificationProgressData .
- Pokaż powiadomienie, wywołując element 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);
Następnie zaktualizuj wartości postępu, wywołując metodę AppNotificationManager.Default.UpdateAsync przy użyciu nowego wystąpienia AppNotificationProgressData . Zwiększ numer sekwencji, aby platforma wiedziała, że jest to nowsza aktualizacja.
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);
Użycie narzędzia UpdateAsync zamiast zastępowania całego powiadomienia gwarantuje, że powiadomienie pozostanie w tej samej pozycji w Centrum powiadomień i nie zostanie przeniesione w górę lub w dół. Metoda zwraca wartość NotificationUpdateResult wskazującą, czy aktualizacja zakończyła się pomyślnie, czy nie można odnaleźć powiadomienia (użytkownik mógł go odrzucić).
Elementy obsługujące powiązanie danych
Następujące elementy w powiadomieniach aplikacji obsługują powiązanie danych:
- Wszystkie właściwości AppNotificationProgressBar
- Właściwość Text na elementach tekstowych najwyższego poziomu
Aktualizowanie lub zastępowanie powiadomienia
Powiadomienie można zastąpić , wysyłając nowe powiadomienie za pomocą tego samego tagu i grupy. W poniższej tabeli opisano różnicę między zastępowaniem i aktualizowaniem powiadomienia.
| Zastąpienie | Aktualizowanie | |
|---|---|---|
| Pozycja w Centrum powiadomień | Przenosi powiadomienie na górę Centrum Powiadomień. | Pozostawia powiadomienie w centrum powiadomień. |
| Modyfikowanie zawartości | Może całkowicie zmienić całą zawartość i układ powiadomienia. | Może zmieniać tylko właściwości obsługujące powiązanie danych (pasek postępu i tekst najwyższego poziomu). |
| Ponowne pojawianie się jako wyskakujące okienko | Może pojawić się ponownie jako popup, jeśli element SuppressPopup jest false (lub jeśli zostanie ustawiony na true w trybie dyskretnym, aby cicho wysłać go do Centrum powiadomień). |
Nie pojawi się ponownie jako wyskakujące okienko; dane powiadomienia są aktualizowane w trybie dyskretnym w Centrum powiadomień. |
| Użytkownik został odrzucony | Powiadomienie zastępcze jest zawsze wysyłane niezależnie od tego, czy użytkownik odrzucił poprzednie powiadomienie. | Jeśli użytkownik odrzucił powiadomienie, aktualizacja zakończy się niepowodzeniem. |
Ogólnie rzecz biorąc, aktualizacja jest przydatna w przypadku informacji, które zmieniają się często i nie wymagają natychmiastowej uwagi użytkownika, takich jak postęp zmieniający się z 50% na 65%.
Po zakończeniu sekwencji aktualizacji (na przykład po zakończeniu pobierania pliku rozważ zastąpienie powiadomienia ostatnim krokiem, ponieważ:
- Ostateczne powiadomienie prawdopodobnie ma inny układ, taki jak usunięcie paska postępu lub dodanie nowych przycisków.
- Użytkownik mógł odrzucić powiadomienie o postępie, ale nadal chce zobaczyć wyskakujące okienko po zakończeniu operacji.