win8系统的开始屏由各种应用的Tile构成,这些磁贴拥有丰富的信息交互功能,而Tile通知就是其中重要的通知形式之一,其作用就是向这些开始屏上的应用Tile推送消息,实时显示应用程序的最新消息数据,使用户在不打开应用的情况下,了解应用更新信息。
首先新建一个项目,并在Package.appxmanifest文件中为应用设置宽微标图片。在MainPage.xaml中定义界面
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Button x:Name="SendTitleUpdate" Click="SendTitleUpdate_Click" Content="发送tile更新通知" Height="112" Width="241" Margin="0,325,0,331" FontSize="36"/>
</Grid>
接下来编写按钮的单击事件
private void SendTitleUpdate_Click(object sender, RoutedEventArgs e)
{
TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);
XmlDocument TitleXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText06);
//XmlDocument TitleXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWidePeekImage06);
XmlNodeList textElement = TitleXml.GetElementsByTagName("text");
int index = 1;
foreach (XmlElement TitleTextAttr in textElement)
{
TitleTextAttr.InnerText = "文本区域" + Convert.ToString(index);
index++;
}
textElement[0].InnerText = "特殊,第一个";
TileNotification tileNotification = new TileNotification(TitleXml);
tileNotification.Tag = "queue1";
TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
XmlDocument TitleXml1 = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText06);
//XmlDocument TitleXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWidePeekImage06);
XmlNodeList textElement1 = TitleXml1.GetElementsByTagName("text");
int index2 = 8;
foreach (XmlElement TitleTextAttr in textElement1)
{
TitleTextAttr.InnerText = "文本区域" + Convert.ToString(index2);
index2++;
}
textElement1[0].InnerText = "特殊,第一个";
TileNotification tileNotification1 = new TileNotification(TitleXml1);
tileNotification1.Tag = "queue2";
TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification1);
}
用到TileUpdateManager和XmlDocument类,需要引用命名空间,只需要在把鼠标放在类上,选择解析,或者选择快捷方式。
XmlDocument TitleXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText06);
这个是用的tile通知的模板,系统为我们提供了很多,我们可以参考资料。
这里需要注意一点,这是发送的宽型Tile通知,需要添加宽微标。