Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bildirim bildiriminizin içinde bir 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.
Important
Creators Update ve Notifications kitaplığı 1.4.0'ıgerektirir: Tost bildirimlerinde ilerleme çubuklarını kullanmak için SDK 15063'ü hedeflemeniz ve derleme 15063 veya üzerini çalıştırmanız gerekir. Bildirim içeriğinizde ilerleme çubuğunu oluşturmak için UWP Community Toolkit Notifications NuGet kitaplığı
Bildirim 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.
Önemli API'ler: NotificationData sınıfı, ToastNotifier.Update yöntemi, ToastNotification sınıfı
Note
Yalnızca Masaüstü, toast bildirimlerinde ilerleme çubuklarını destekler. Diğer cihazlarda ilerleme çubuğu bildiriminizden bırakılır.
Aşağıdaki resimde, ilgili tüm özellikleri etiketlenmiş bir belirlenen ilerleme çubuğu gösterilmektedir.
İlerleme çubuğu özelliklerine sahip
olarak etiketlendi.
| Property | Type | Required | Description |
|---|---|---|---|
| Title | dize veya BindableString | false | İsteğe bağlı bir başlık metnini alır veya ayarlar. Veri bağlamayı destekler. |
| Value | 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 çift, AdaptiveProgressBarValue.Indeterminateveya 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. |
| Status | dize veya BindableString | true | 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..." |
Yukarıda görülen bildirimi şu şekilde oluşturabilirsiniz...
new ToastContentBuilder()
.AddText("Downloading your weekly playlist...")
.AddVisualChild(new AdaptiveProgressBar()
{
Title = "Weekly playlist",
Value = 0.6,
ValueStringOverride = "15/26 songs",
Status = "Downloading..."
});
Ancak, ilerleme çubuğunun "canlı" olması için değerlerini dinamik olarak güncelleştirmeniz gerekir. Bu, toast güncellemek için veri bağlama kullanılarak yapılabilir.
Veri bağlamayı kullanarak toast güncelleme
Veri bağlamanın kullanılması aşağıdaki adımları içerir...
- Veri bağlı alanları kullanan bildirim içeriği oluşturma
- Etiketi (ve isteğe bağlı olarak Grubu) ToastNotification'ye atayın
- ToastNotification ilk Veri değerlerinizi tanımlama
- Tost gönder
- Veri değerlerini yeni değerlerle güncelleştirmek için Etiket ve Grubu kullanın
Aşağıdaki kod parçacığı 1-4 arası adımları gösterir. Bir sonraki kod parçacığı, tost veri değerlerinin nasıl güncellenebileceğini gösterecektir.
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);
}
Ardından, Veri değerlerinizi değiştirmek istediğinizde, tüm toast yükünü yeniden oluşturmadan yeni verileri sağlamak için Update yöntemini kullanın.
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);
}
Tüm bildirimi değiştirmek yerine Update yönteminin kullanılması, bildirimin Eylem Merkezi'nde aynı konumda kalmasını ve yukarı veya aşağı kaymamasını da sağlar. İlerleme çubuğu doluyken bildirim birkaç saniyede bir İşlem Merkezi'nin en üstüne atlamaya devam ederse kullanıcı için oldukça kafa karıştırıcı olacaktır!
Veri bağlamayı destekleyen öğeler
Bildirim uyarılarında aşağıdaki öğeler veri bağlamayı destekler.
- AdaptiveProgress'daki tüm özellikler
- En üst düzey AdaptiveText öğelerindeki Metin özelliği
Bildirimi güncelleştirme veya değiştirme
Windows 10'dan bu yana, bildirim yerine aynı Etiketi ve Groupile yeni bir bildirim gönderebilirsiniz. Peki, 'ı ile değiştirmek ile 'yi ve tostun verilerini güncellemek arasındaki fark nedir?
| Replacing | Updating | |
|---|---|---|
| İşlem Merkezi'nde Konumu | Bildirimi İşlem Merkezi'nin en üstüne taşır. | bildirimi İşlem Merkezi'nde yerinde bırakır. |
| Modifying content | Tost bildiriminin tüm içeriğini/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çılan olarak yeniden görüntüleniyor |
SuppressPopupfalse olarak ayarlarsanız (ya da sessizce İşlem Merkezi'ne göndermek için true olarak ayarlanırsa), bir bildirim açılır penceresi olarak yeniden görünebilir. |
Açılır pencere olarak yeniden gösterilmez; bildirim çubuğunun verileri İşlem Merkezi içinde sessizce güncellenir. |
| User dismissed | Kullanıcı, önceki bildiriminizi görmezden gelse bile, yeni uyarı mesajınız her zaman gönderilecektir. | Kullanıcı açılır bildiriminizi kapatmışsa, açılır bildirim güncelleştirmesi başarısız olur. |
Genel olarak, güncelleştirmesi... açısından yararlıdır.
- Kısa bir süre içinde sık sık değişen ve kullanıcının dikkatinin önüne getirilmesini gerektirmeyen bilgiler
- Bildirim içeriğinizde, 50%'yi 65%'ye değiştirme gibi küçük değişiklikler
Çoğu zaman, güncelleştirme diziniz tamamlandıktan sonra (dosya indirildiği gibi), son adım için değiştirmenizi öneririz, çünkü...
- Son bildiriminizde büyük olasılıkla ilerleme çubuğunun kaldırılması, yeni düğmelerin eklenmesi gibi önemli düzen değişiklikleri vardır
- Kullanıcı, indirme işlemini izlemeyi umursamadığı için bekleyen ilerleme bildiriminizi kapatmış olabilir, ancak işlem tamamlandığında yine de açılan bildirimle bildirim almak isteyebilir
Related topics
- GitHub'da tam kod örneği
- Toast içerik belgelendirmesi
Windows developer