磁贴 & 磁贴通知


//选择模版
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/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值