通知バッジは、アプリに固有の概要または状態情報を伝えます。 数値 (1 から 99) またはシステム提供のグリフのセットの 1 つを指定できます。 バッジを通じて最もよく伝わる情報の例としては、オンライン ゲームのネットワーク接続状態、メッセージング アプリのユーザー状態、メール アプリ内の未読メールの数、ソーシャル メディア アプリの新しい投稿の数などがあります。
通知バッジは、アプリが実行されているかどうかに関係なく、アプリのタスク バー アイコンとスタート タイルの右下隅に表示されます。 バッジは、すべてのタイル サイズに表示できます。
Note
独自のバッジ イメージを指定することはできません。システム提供のバッジ イメージのみを使用できます。
数値バッジ
| Value | Badge | XML |
|---|---|---|
| 1 から 99 までの数値。 値 0 はグリフ値 "none" に相当し、バッジをクリアします。 |
|
<badge value="1"/> |
| 99 を超える任意の数。 |
|
<badge value="100"/> |
グリフ バッジ
バッジには、数値の代わりに、拡張可能でない状態グリフのセットのいずれかを表示できます。
| Status | Glyph | XML |
|---|---|---|
| none | (バッジは表示されません。) | <badge value="none"/> |
| アクティビティ |
|
<badge value="activity"/> |
| alarm |
|
<badge value="alarm"/> |
| アラート |
|
<badge value="alert"/> |
| attention |
|
<badge value="attention"/> |
| available |
|
<badge value="available"/> |
| away |
|
<badge value="away"/> |
| busy |
|
<badge value="busy"/> |
| エラー |
|
<badge value="error"/> |
| newMessage |
|
<badge value="newMessage"/> |
| paused |
|
<badge value="paused"/> |
| playing |
|
<badge value="playing"/> |
| unavailable |
|
<badge value="unavailable"/> |
Windows アプリ SDK アプリでバッジを設定する
Windows アプリ SDK 1.7 以降では、 名前空間の Microsoft.Windows.BadgeNotifications クラスを使用してバッジを設定およびクリアします。 これは、Windows アプリ SDK アプリに推奨されるアプローチです。 XML ペイロードを作成する代わりに、メソッドを呼び出し、数値または BadgeNotificationGlyph 値を渡します。
![]()
WinUI 3 ギャラリー アプリには、WinUI コントロールと機能の対話型の例が含まれています。 Microsoft Store からアプリを取得するか、GitHub でソース コードを参照します。
Important
BadgeNotificationManager にはパッケージ ID が必要です。 パッケージ化されていないなどの理由でアプリにパッケージ ID がない場合は、 SetBadgeAsCount、 SetBadgeAsGlyph、 ClearBadge の呼び出しで例外がスローされます。 詳細については、「Windows アプリのパッケージ ID の概要」を参照してください。
バッジがアプリのタスク バー アイコンに表示されます。 アプリがタスク バーにピン留めされている場合、アプリが実行されていない場合でもバッジが表示されます。 アプリの BadgeNotificationManager インスタンスを取得するには、 Current プロパティを使用します。
次の例は、WinUI 3 ギャラリーのサンプルに基づいています。 それらを使用するには、コード ファイルに using Microsoft.Windows.BadgeNotifications; ディレクティブを追加します。
数値バッジを設定する
SetBadgeAsCount を呼び出し、表示する数を渡します。 数値が 99 より大きい場合、バッジには "99+" と表示されます。
private void SetBadgeCountButton_Click(object sender, RoutedEventArgs e)
{
// Show the number 5 on the app's taskbar icon.
BadgeNotificationManager.Current.SetBadgeAsCount(5);
}
グリフ バッジを設定する
SetBadgeAsGlyph を呼び出し、BadgeNotificationGlyph値を渡します。 列挙値は、 Glyph バッジ テーブルのグリフに対応します。
private void SetBadgeGlyphButton_Click(object sender, RoutedEventArgs e)
{
// Show the alert glyph on the app's taskbar icon.
BadgeNotificationManager.Current.SetBadgeAsGlyph(BadgeNotificationGlyph.Alert);
}
バッジを消去する
ClearBadge を呼び出してバッジを削除します。 0 のカウントを設定するか、BadgeNotificationGlyph.None グリフを使用すると、バッジもクリアされます。
private void ClearBadgeButton_Click(object sender, RoutedEventArgs e)
{
BadgeNotificationManager.Current.ClearBadge();
}
UWP BadgeUpdateManager API を使用してバッジを作成する
これらの例では、UWP アプリのバッジ API である Windows ランタイム 名前空間で Windows.UI.Notifications クラスを使用します。 前の表の値を使用して、バッジを XML ペイロードとしてビルドします。 アプリで Windows アプリ SDK 1.7 以降を使用している場合は、代わりに BadgeNotificationManager を使用してください。
数値バッジを作成する
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);
}
グリフ バッジを作成する
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);
}
バッジをクリアする
private void clearBadge()
{
BadgeUpdateManager.CreateBadgeUpdaterForApplication().Clear();
}
サンプル コードを取得する
-
Windows アプリ SDK 通知のサンプル
アプリの通知とバッジの更新を送信する方法を示します。
関連資料
Windows developer