UWP Live Tiles创建方法咨询及更新示例请求:代码插入位置解惑
UWP中创建和更新Live Tiles的完整指南及示例代码
Hey Tom, 我来帮你彻底搞懂UWP里的Live Tiles!不管是搭建基础动态磁贴,还是解决更新方法找不到、代码不知道放哪儿的问题,这篇内容都给你安排明白~
一、先理清核心逻辑
Live Tiles的本质是通过XML模板定义内容,再用TileUpdateManager这个核心类来推送更新到系统磁贴。微软提供了几十种预定义模板(比如文本类、图文混合类),你可以直接用,也可以自定义模板。
二、磁贴更新的关键方法(你要找的就是这个!)
之前你说找不到更新方法,其实核心就是这几个:
TileUpdateManager.CreateTileUpdaterForApplication():获取主应用磁贴的更新器TileUpdater.Update(TileNotification):把新的磁贴内容推送到系统TileUpdateManager.GetTemplateContent():获取预定义的磁贴XML模板
三、完整可运行的示例代码
下面是一个基础的动态磁贴更新代码,包含从模板获取到推送更新的全流程:
using Windows.UI.Notifications; using Windows.Data.Xml.Dom; // 1. 获取主应用磁贴的更新实例 TileUpdater tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication(); // 可选:清空之前的磁贴内容,避免旧内容干扰 tileUpdater.Clear(); // 2. 选择一个预定义的磁贴模板(这里用方形文本模板,你可以换其他类型) XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text01); // 3. 获取模板里的文本节点,填充自定义内容 XmlNodeList textNodes = tileXml.GetElementsByTagName("text"); // 第一个文本节点是标题 textNodes[0].AppendChild(tileXml.CreateTextNode("我的第一个Live Tile")); // 第二个文本节点是副标题 textNodes[1].AppendChild(tileXml.CreateTextNode("这是动态更新的内容哦!")); // 4. 创建磁贴通知对象 TileNotification tileNotification = new TileNotification(tileXml); // 可选:设置磁贴内容的过期时间,到期后恢复默认磁贴 tileNotification.ExpirationTime = DateTimeOffset.Now.AddHours(2); // 5. 推送更新到系统磁贴 tileUpdater.Update(tileNotification);
四、代码该插在哪里?
这分几种场景:
- 启动应用时自动更新:把代码放到
MainPage.xaml.cs的构造函数里,或者OnNavigatedTo方法中,打开应用就会更新磁贴。 - 用户触发更新(比如点击按钮):新建一个按钮,在它的
Click事件处理方法里粘贴这段代码,用户点按钮就更新。 - 后台定时更新:如果需要每隔一段时间自动更新,就得创建后台任务,把更新代码放到后台任务的
Run方法里,同时要在Package.appxmanifest中声明后台任务类型为"计时器"或"推送通知"。
五、进阶小技巧
- 想显示更多内容?可以用宽屏模板,比如
TileWide310x150Text03,代码逻辑一样,只是模板类型变了。 - 要更新次级磁贴(不是主应用磁贴)?把
CreateTileUpdaterForApplication()换成CreateTileUpdaterForSecondaryTile("你的次级磁贴ID")就行。 - 自定义模板:如果预定义模板不够用,你可以自己写XML结构,只要符合UWP磁贴的XML规范就行。
如果还有细节问题,比如自定义模板怎么写、后台任务怎么配置,随时问我!
内容的提问来源于stack exchange,提问作者Tom Red
相关产品推荐
相关产品推荐

