Pemberitahuan lencana untuk aplikasi Windows

Lencana pemberitahuan menyampaikan ringkasan atau informasi status khusus untuk aplikasi Anda. Mereka dapat berupa numerik (1-99) atau salah satu dari satu set glyph yang disediakan sistem. Contoh informasi yang paling baik disampaikan melalui lencana termasuk status koneksi jaringan dalam game online, status pengguna di aplikasi olahpesan, jumlah email yang belum dibaca di aplikasi email, dan jumlah posting baru di aplikasi media sosial.

Lencana pemberitahuan muncul di ikon taskbar aplikasi Anda dan di sudut kanan bawah petak peta mulainya, terlepas dari apakah aplikasi sedang berjalan. Lencana dapat ditampilkan pada semua ukuran ubin.

Note

Anda tidak dapat memberikan gambar lencana Anda sendiri; hanya citra lencana yang disediakan sistem yang dapat digunakan.

Lencana numerik

Value Badge XML
Angka dari 1 hingga 99. Nilai 0 setara dengan nilai glyph "none" dan akan menghapus lencana. Lencana numerik kurang dari 100. <badge value="1"/>
Angka apa pun yang lebih besar dari 99. Jumlah lencana lebih besar dari 99. <badge value="100"/>

Lencana Glif

Alih-alih angka, lencana dapat menampilkan salah satu dari serangkaian glyph status yang tidak dapat diperluas.

Status Glyph XML
none (Tidak ada lencana yang ditampilkan.) <badge value="none"/>
aktivitas Lencana glyph yang menandakan status 'aktivitas'. <badge value="activity"/>
alarm Lencana simbol yang menunjukkan status 'peringatan'. <badge value="alarm"/>
pemberitahuan Lencana yang menandakan status 'peringatan'. <badge value="alert"/>
attention Lencana glyph yang menunjukkan status 'perhatian'. <badge value="attention"/>
available Lencana glyph yang menunjukkan status 'tersedia'. <badge value="available"/>
away Lencana glyph yang menunjukkan status 'jauh'. <badge value="away"/>
busy Lencana berbentuk glyph yang menunjukkan status 'sibuk'. <badge value="busy"/>
galat Lencana glyph yang menunjukkan status 'kesalahan'. <badge value="error"/>
newMessage Lencana glyph yang menandakan status 'pesanBaru'. <badge value="newMessage"/>
paused Lencana glyph yang menunjukkan status 'dijeda'. <badge value="paused"/>
playing Lencana glyph yang menunjukkan status 'bermain'. <badge value="playing"/>
unavailable Lencana glyph yang menunjukkan status 'tidak tersedia'. <badge value="unavailable"/>

Mengatur lencana di aplikasi SDK Aplikasi Windows

Mulai dari SDK Aplikasi Windows 1.7, gunakan kelas BadgeNotificationManager di namespace Microsoft.Windows.BadgeNotifications untuk mengatur dan menghapus lencana. Ini adalah pendekatan yang direkomendasikan untuk aplikasi SDK Aplikasi Windows. Alih-alih membangun payload XML, Anda memanggil metode dan meneruskan angka atau nilai BadgeNotificationGlyph .

Ikon Galeri WinUI 3 Aplikasi Galeri WinUI 3 mencakup contoh interaktif kontrol dan fitur WinUI. Dapatkan aplikasi dari Microsoft Store atau telusuri kode sumber pada GitHub.

Important

BadgeNotificationManager memerlukan identitas paket. Jika aplikasi Anda tidak memiliki identitas paket, misalnya karena tidak dikemas, panggilan ke SetBadgeAsCount, SetBadgeAsGlyph, dan ClearBadge melemparkan pengecualian. Untuk informasi selengkapnya, lihat Gambaran umum Identitas Paket di aplikasi Windows.

Badge muncul di ikon taskbar aplikasi Anda. Jika aplikasi disematkan ke taskbar, lencana akan muncul bahkan saat aplikasi tidak berjalan. Untuk mendapatkan BadgeNotificationManager instans aplikasi Anda, gunakan properti Current.

Contoh berikut didasarkan pada sampel Galeri WinUI 3. Untuk menggunakannya, tambahkan direktif using Microsoft.Windows.BadgeNotifications; ke file kode Anda.

Setel lencana numerik

Panggil SetBadgeAsCount dan teruskan nomor untuk ditampilkan. Jika jumlahnya lebih besar dari 99, lencana menunjukkan "99+".

private void SetBadgeCountButton_Click(object sender, RoutedEventArgs e)
{
    // Show the number 5 on the app's taskbar icon.
    BadgeNotificationManager.Current.SetBadgeAsCount(5);
}

Mengatur lencana glyph

Panggil SetBadgeAsGlyph dan berikan nilai BadgeNotificationGlyph. Nilai enumerasi berkorespondensi dengan glyph dalam tabel lencana Glyph.

private void SetBadgeGlyphButton_Click(object sender, RoutedEventArgs e)
{
    // Show the alert glyph on the app's taskbar icon.
    BadgeNotificationManager.Current.SetBadgeAsGlyph(BadgeNotificationGlyph.Alert);
}

Hapus badge

Panggil metode ClearBadge untuk menghapus lencana. Mengatur hitungan 0, atau BadgeNotificationGlyph.None glyph, juga menghapus lencana.

private void ClearBadgeButton_Click(object sender, RoutedEventArgs e)
{
    BadgeNotificationManager.Current.ClearBadge();
}

Buat lencana dengan API BadgeUpdateManager UWP

Contoh-contoh ini menggunakan kelas BadgeUpdateManager di namespace Windows Runtime Windows.UI.Notifications, yang merupakan API lencana untuk aplikasi UWP. Anda membangun lencana sebagai payload XML, menggunakan nilai dalam tabel sebelumnya. Jika aplikasi Anda menggunakan SDK Aplikasi Windows 1.7 atau yang lebih baru, gunakan BadgeNotificationManager sebagai gantinya.

Membuat lencana numerik

private void setBadgeNumber(int num)
{

    // Get the blank badge XML payload for a badge number
    XmlDocument badgeXml = 
        BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeNumber);

    // Set the value of the badge in the XML to our number
    XmlElement badgeElement = badgeXml.SelectSingleNode("/badge") as XmlElement;
    badgeElement.SetAttribute("value", num.ToString());

    // Create the badge notification
    BadgeNotification badge = new BadgeNotification(badgeXml);

    // Create the badge updater for the application
    BadgeUpdater badgeUpdater = 
        BadgeUpdateManager.CreateBadgeUpdaterForApplication();

    // And update the badge
    badgeUpdater.Update(badge);

}

Membuat lencana glyph

private void updateBadgeGlyph()
{
    string badgeGlyphValue = "alert";

    // Get the blank badge XML payload for a badge glyph
    XmlDocument badgeXml = 
        BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeGlyph);

    // Set the value of the badge in the XML to our glyph value
    Windows.Data.Xml.Dom.XmlElement badgeElement = 
        badgeXml.SelectSingleNode("/badge") as Windows.Data.Xml.Dom.XmlElement;
    badgeElement.SetAttribute("value", badgeGlyphValue);

    // Create the badge notification
    BadgeNotification badge = new BadgeNotification(badgeXml);

    // Create the badge updater for the application
    BadgeUpdater badgeUpdater = 
        BadgeUpdateManager.CreateBadgeUpdaterForApplication();

    // And update the badge
    badgeUpdater.Update(badge);

}

Menghapus lencana

private void clearBadge()
{
    BadgeUpdateManager.CreateBadgeUpdaterForApplication().Clear();
}

Dapatkan kode contoh