Uygulama bildirimindeki ilerleme çubuğu ve veri bağlama

Uygulama bildiriminizin içinde ilerleme çubuğu kullanmak, indirmeler, video işleme, alıştırma hedefleri ve daha fazlası gibi uzun süre çalışan işlemlerin durumunu kullanıcıya iletmenizi sağlar.

Uygulama bildiriminin içindeki ilerleme çubuğu "belirsiz" (belirli bir değer yok, animasyonlu noktalar bir işlemin gerçekleştiğini gösteriyor) veya "determinate" (çubuğun belirli bir yüzdesi 60%gibi doldurulur) olabilir.

Aşağıdaki görüntüde, ilgili tüm özellikleri etiketlenmiş bir belirleyici ilerleme çubuğu gösterilmektedir.

Uygulama bildirimleri hakkında daha fazla bilgi için bkz. Uygulama bildirimlerine genel bakış.

İlerleme çubuğu özellikleri etiketli uygulama bildirimi
Mülkiyet Türü Zorunlu Açıklama
Başlık dize veya BindableString false İsteğe bağlı bir başlık metnini alır veya ayarlar. Veri bağlamayı destekler.
Değer double veya AdaptiveProgressBarValue veya BindableProgressBarValue false İlerleme çubuğunun değerini alır veya ayarlar. Veri bağlamayı destekler. Varsayılan değer 0'dır. 0,0 ile 1,0 arasında bir ondalık sayı, AdaptiveProgressBarValue.Indeterminate veya new BindableProgressBarValue("myProgressValue") olabilir.
ValueStringOverride dize veya BindableString false Varsayılan yüzde dizesi yerine görüntülenecek isteğe bağlı bir dize alır veya ayarlar. Bu sağlanmamışsa , "70%" gibi bir şey görüntülenir.
Statü dize veya BindableString doğru Soldaki ilerleme çubuğunun altında görüntülenen bir durum dizesini (gerekli) alır veya ayarlar. Bu dize işlemin durumunu yansıtmalıdır, örneğin "İndiriyor..." veya "Yükleniyor..."

Bildiriminize ilerleme çubuğu eklemek için AppNotificationBuilder.AddProgressBar kullanın. Aşağıdaki örnek, yukarıda gösterilen bildirimi oluşturur.

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

İlerleme çubuğunun değerlerini dinamik olarak güncelleştirmek için, sonraki bölümde açıklandığı gibi veri bağlamayı kullanın.

İlerleme çubuğunu veri bağlama ile güncelleştirme

Canlı ilerleme çubuğunu görüntülemek için veri bağlamayı kullanarak bildirimin tamamını yeniden göndermeden bildirim değerlerini güncelleştirin.

  1. Bind üzerindeki yöntemleri çağırarak veriye bağlı alanlarla bildirim içeriği oluşturun.
  2. Bildirimi tanımlamak için bir Etiket (ve isteğe bağlı olarak bir Grup) atayın.
  3. İlk AppNotificationProgressData değerlerini ayarlayın.
  4. AppNotificationManager.Default.Show'ı çağırarak bildirimi gösterin.
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);

Ardından, appNotificationManager.Default.UpdateAsync öğesini yeni bir AppNotificationProgressData örneğiyle çağırarak ilerleme değerlerini güncelleştirin. Platformun bunun daha yeni bir güncelleştirme olduğunu bilmesi için sıra numarasını artırma.

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

Bildirimin tamamını değiştirmek yerine UpdateAsync kullanmak, bildirimin Bildirim Merkezi'nde aynı konumda kalmasını ve yukarı veya aşağı hareket etmemesini sağlar. yöntemi, güncelleştirmenin başarılı olup olmadığını veya bildirimin bulunup bulunmadığını (kullanıcı tarafından kapatılmış olabilir) belirten bir NotificationUpdateResult döndürür.

Veri bağlamayı destekleyen öğeler

Uygulama bildirimlerinde aşağıdaki öğeler veri bağlamayı destekler:

  • AppNotificationProgressBar'daki tüm özellikler
  • Üst düzey metin öğelerindeki Text özelliği

Bildirimi güncelleştirme veya değiştirme

Aynı Etiket ve Grup ile yeni bir bildirim göndererek bir bildirimi değiştirebilirsiniz. Aşağıdaki tabloda, bir bildirimi değiştirme ve güncelleştirme arasındaki fark açıklanmaktadır.

Değiştirme Güncelleştirme
Bildirim Merkezi'ndeki konum Bildirimi Bildirim Merkezi'nin en üstüne taşır. Bildirim Merkezi'nde bildirim öylece bırakılır.
İçeriği değiştirme Bildirimin tüm içeriğini ve düzenini tamamen değiştirebilir. Yalnızca veri bağlamayı destekleyen özellikleri değiştirebilir (ilerleme çubuğu ve en üst düzey metin).
Açılır pencere olarak yeniden görüntüleniyor Eğer SuppressPopupfalse ise (veya true olarak ayarlandıysa, sessizce Bildirim Merkezi'ne göndermek için), açılır pencere olarak yeniden gösterilebilir. Açılır pencere olarak yeniden gösterilmez; bildirimin verileri Bildirim Merkezi'nin içinde sessizce güncelleştirilir.
Kullanıcı kapatıldı Değiştirme bildirimi, kullanıcının önceki bildirimi kapatıp kapatmadığına bakılmaksızın her zaman gönderilir. Kullanıcı bildirimi kapatmışsa güncelleştirme başarısız olur.

Genel olarak güncelleştirme , sık değişen ve ilerlemenin 50%'den 65%'a değişmesi gibi kullanıcının hemen ilgilenmesini gerektirmeyen bilgiler için yararlıdır.

Güncelleştirme diziniz tamamlandıktan sonra (örneğin, bir dosyanın indirilmesi tamamlandı), son adım için bildirimi değiştirmeyi göz önünde bulundurun çünkü:

  • Son bildirimin büyük olasılıkla ilerleme çubuğunun kaldırılması veya yeni düğmelerin eklenmesi gibi farklı bir düzeni vardır.
  • Kullanıcı ilerleme bildirimini kapatmış olabilir ancak işlem tamamlandığında yine de bir açılan pencere görmek istiyor olabilir.

Ayrıca bakınız