<Page
x:Class="pc.toastExample.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:pc.toastExample"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Click="Button_Click">Send toast</Button>
</StackPanel>
</Grid>
</Page>
It really is a minimalist piece...Let's take a look at our code behind
using System;
using Windows.UI.Notifications;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace pc.toastExample
{
public sealed partial class MainPage : Page
{
public MainPage() { this.InitializeComponent(); }
private void
Button_Click(object sender, RoutedEventArgs e)
{
var template = ToastTemplateType.ToastText02;
var xmlDoc = ToastNotificationManager.GetTemplateContent(template);
var xml = xmlDoc.GetXml();
/* <toast>
<visual>
<binding
template="ToastText02">
<text
id="1"></text>
<text
id="2"></text>
</binding>
</visual>
</toast>*/
var textElements = xmlDoc.GetElementsByTagName("text");
textElements[0].AppendChild(xmlDoc.CreateTextNode("Title text"));
textElements[1].AppendChild(xmlDoc.CreateTextNode("body text"));
var time = DateTimeOffset.Now.AddSeconds(5);
var toast = new ScheduledToastNotification(xmlDoc, time);
var notifier = ToastNotificationManager.CreateToastNotifier();
notifier.AddToSchedule(toast);
}
}
}
now let's say we scheduled some toasts but now we want to remove them. well add another button to our UI and add the following to the click event.
private void
Button_Click_1(object sender, RoutedEventArgs e)
{
var notifier = ToastNotificationManager.CreateToastNotifier();
var toasts = notifier.GetScheduledToastNotifications();
foreach (var t in toasts)
notifier.RemoveFromSchedule(t);
}