//选择模版 XmlDocument largeTileData = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWidePeekImage01); //添加文字说明 XmlNodeList largetextdata = largeTileData.GetElementsByTagName("text"); XmlNodeList imagedata = largeTileData.GetElementsByTagName("image"); largetextdata[0].InnerText = "F#ck Day!"; largetextdata[1].InnerText = "What a F#cking Day?"; //设置图片 ((XmlElement)imagedata[0]).SetAttribute("src","ms-appx:///images/1024.png"); //微标 文字以及图片 XmlDocument smalltiledate = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquarePeekImageAndText02); XmlNodeList smallTileText = smalltiledate.GetElementsByTagName("text"); XmlNodeList smallTileImage = smalltiledate.GetElementsByTagName("image"); smallTileText[0].InnerText = "Cao Egg"; smallTileText[1].InnerText = "I'm F#cker in there"; ((XmlElement)smallTileImage[0]).SetAttribute("src", "ms-appx:///images/1024.png"); //合并两个到一个<visual> XML节点 IXmlNode newNode = largeTileData.ImportNode(smalltiledate.GetElementsByTagName("binding").Item(0), true); largeTileData.GetElementsByTagName("visual").Item(0).AppendChild(newNode); //创建通知 TileNotification notification = new TileNotification(largeTileData); //多少秒以后移除 notification.ExpirationTime = DateTimeOffset.UtcNow.AddSeconds(30); //发送通知 TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);
精简
XmlDocument tileData = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareBlock); XmlNodeList textData = tileData.GetElementsByTagName("text"); textData[0].InnerText = "10"; textData[1].InnerText = "Days of Me"; TileNotification notification = new TileNotification(tileData); //为通知设置到期时间 //默认情况下,本地磁贴和锁屏提醒不会过期,推送通知、定期通知、激活通知会在三天之后过期。 //最好通过使用一个对你的应用有意义的时间设置过期时间,对于本地磁贴和锁屏提醒通知尤其如此。 //磁贴内容的保留时间应不长于内容具有相关性的时间。 //在这种情况下,该通知将在十分钟内到期并从磁贴中删除。 notification.ExpirationTime = DateTimeOffset.UtcNow.AddSeconds(20); TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);
计划磁贴通知
//指定模板 TileTemplateType tileTemplate = TileTemplateType.TileWideImageAndText01; XmlDocument tileXml = TileUpdateManager.GetTemplateContent(tileTemplate); //提供通知内容 //设置文字 XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text"); tileTextAttributes[0].InnerText = "Hello"+Guid.NewGuid().ToString().Substring(0,5)+" World!!!!!"; //设置图片 XmlNodeList tileImageAttributes = tileXml.GetElementsByTagName("image"); ((XmlElement)tileImageAttributes[0]).SetAttribute("src", "ms-appx:///images//1024.png"); ((XmlElement)tileImageAttributes[0]).SetAttribute("alt", "red graphic"); //小瓷贴模版。 XmlDocument squareTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareText04); //设置文字 XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text"); squareTileTextAttributes[0].AppendChild(squareTileXml.CreateTextNode("Hello " + Guid.NewGuid().ToString().Substring(0, 5) + " World。。。。")); //绑定 IXmlNode node = tileXml.ImportNode(squareTileXml.GetElementsByTagName("binding").Item(0), true); //插入 tileXml.GetElementsByTagName("visual").Item(0).AppendChild(node); //指定应传递通知的时间 //Int16 dueTimeInHours = 3; //DateTime dueTime = DateTime.Now.AddHours(dueTimeInHours); DateTime dueTim1e = DateTime.Now.AddSeconds(10); //创建计划的磁贴通知对象 ScheduledTileNotification scheduledTile = new ScheduledTileNotification(tileXml, dueTim1e); //为计划的磁贴通知赋予 ID scheduledTile.Id = "Future_Tile"; //向计划中添加磁贴通知。 TileUpdateManager.CreateTileUpdaterForApplication().AddToSchedule(scheduledTile);
磁贴通知队列
//设置选项以启用通知循环 TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true); //创建磁贴通知 TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideImageAndText01); XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareBlock); // TODO: Fill in the template with your tile content. // TODO: Define a square tile and add it to tileXML. TileNotification tileNotification = new TileNotification(tileXml); /* * 启用队列时,最多可在磁贴上自动循环显示五个磁贴通知。 * 默认情况下,队列中通知的替换策略是先进先出 (FIFO); * 当队列排满且到达新通知时,最早的通知将被删除。 * 请注意,通知显示顺序不遵守严格的线性模式。 * 用户可看到通知的顺序与其到达时的顺序并不相同。 */ //授予通知标记 tileNotification.Tag = "stockMSFT"; //向磁贴发送通知 TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
清除磁贴通知
Windows.UI.Notifications.TileUpdateManager.CreateTileUpdaterForApplication().Clear();
参考实例:http://code.msdn.microsoft.com/windowsapps/app-tiles-and-badges-sample-5fc49148/