100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
.NET

UWP Notifications and Tiles

How Universal Windows Platform apps surface toast notifications and live tile updates to keep users informed, both locally and via push.

UWP APIsIntermediate8 min readJul 10, 2026
Analogies

The Notification Pipeline

UWP notifications reach a user through three delivery paths that all render through the same XML-based toast template system underneath. Local notifications are raised directly by app code while it's running. Scheduled notifications are queued in advance with a specific delivery time, via ScheduledToastNotification, and fire even if the app isn't running at that moment. Push notifications are delivered by the Windows Notification Service (WNS) from a cloud backend, and are the only path that works when the app is fully closed and the device wasn't expecting anything at that instant.

🏏

Cricket analogy: Like a stadium's PA system that announces a wicket instantly during play, local, pre-schedules the lunch-break reminder for exactly 12:40pm regardless of match state, scheduled, and also relays a breaking selection-committee update pushed live from headquarters even when the ground is empty, push — three channels, one PA system.

Toast Notification XML and Adaptive Content

A toast is ultimately an XmlDocument conforming to the adaptive toast schema, most conveniently assembled with ToastContentBuilder rather than hand-written XML strings. The schema defines text bindings for title and body, an optional hero image shown prominently at the top, inline images, and action buttons whose ActivationType can be Foreground (bring the app to front), Background (run a background task without showing UI), or Protocol (launch another app or URI entirely). The finished XmlDocument is wrapped in a ToastNotification object and shown via ToastNotificationManager.CreateToastNotifier().Show().

🏏

Cricket analogy: Like a match-report template with fixed slots for the headline, a hero photo of the winning six, and a view-scorecard button — the adaptive toast schema similarly has fixed slots for text bindings, a hero image, and action buttons that a developer fills in.

xml
<toast activationType="foreground" launch="action=viewOrder&amp;orderId=4471">
  <visual>
    <binding template="ToastGeneric">
      <text>Order shipped!</text>
      <text>Your order #4471 is on its way.</text>
      <image placement="hero" src="ms-appx:///Assets/ShippedHero.png" />
    </binding>
  </visual>
  <actions>
    <action content="Track package" arguments="action=track&amp;orderId=4471" activationType="foreground" />
    <action content="Dismiss" arguments="action=dismiss" activationType="background" />
  </actions>
</toast>

Live Tiles and Tile Templates

TileUpdateManager pushes update XML to a pinned Start tile at one of its supported sizes — small, medium, wide, or large — each of which shows a different amount of content, from just an icon and badge on small up to a rich multi-line layout on large. Each tile can hold up to five queued notifications at once, which Windows cycles through automatically over time without any app code needing to run again, giving the appearance of a constantly refreshing tile from a single update call. Separately, BadgeUpdateManager sets a small numeric or glyph badge (like an unread count) in the corner of the tile, independent of the main tile content.

🏏

Cricket analogy: Like a stadium's rotating LED perimeter boards cycling through five different sponsor messages in sequence throughout a session — a tile's notification queue similarly cycles up to five queued pieces of content on rotation.

Push Notifications via WNS

To receive push notifications, an app first calls PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync() at startup, which returns a unique channel URI identifying that specific app installation. That URI is sent to the developer's own backend server, which stores it against the relevant user record. When the backend wants to notify that device, it authenticates with WNS using the app's package security identifier (SID) and a client secret generated in Partner Center, then POSTs the notification XML payload to that channel URI — WNS handles final delivery to the device, even if the app is fully closed.

🏏

Cricket analogy: Like a broadcaster registering for a unique satellite uplink frequency with the network before every live match, then feeding footage through that specific channel — the app registers a unique channel URI with WNS before the server can push anything through it.

The push notification channel URI is not permanent — it can expire or change, particularly after an extended period offline or an app reinstall. Backends should treat WNS delivery failures (such as HTTP 410 Gone) as a signal to discard the stored URI and prompt the app to re-register a fresh channel.

  • Notifications reach users through three paths: local (app-raised), scheduled (queued for a future time), and push (delivered via WNS even when the app is closed).
  • All three render through the same adaptive toast XML schema, most easily built with ToastContentBuilder.
  • Toast actions have an ActivationType of Foreground, Background, or Protocol, controlling what happens on tap.
  • TileUpdateManager updates pinned Start tiles across small/medium/wide/large sizes, each with different content density.
  • A tile's notification queue holds up to five updates that Windows automatically cycles through over time.
  • BadgeUpdateManager sets a numeric or glyph badge independently of the main tile content.
  • Push notifications require registering a channel URI via PushNotificationChannelManager and sending it to a backend that authenticates with WNS using the app's package SID and client secret.

Practice what you learned

Was this page helpful?

Topics covered

#NET#Windows10UWPDevelopmentStudyNotes#MicrosoftTechnologies#UWPNotificationsAndTiles#UWP#Notifications#Tiles#Notification#StudyNotes#SkillVeris