UWP Windows10开发更新磁贴和动态更新磁贴

简介: 原文:UWP Windows10开发更新磁贴和动态更新磁贴下面将介绍两种方式如何在windows10 uwp开发中如何更新应用磁贴: 实际上windows的磁贴就是用xml实现的,你只需要创建相应格式的xml就可以实现动态磁贴了 一,手动更新磁贴 二,轮询更新磁贴 【第一种方式】手动更新磁...
原文: UWP Windows10开发更新磁贴和动态更新磁贴

下面将介绍两种方式如何在windows10 uwp开发中如何更新应用磁贴:

实际上windows的磁贴就是用xml实现的,你只需要创建相应格式的xml就可以实现动态磁贴了

一,手动更新磁贴

二,轮询更新磁贴

【第一种方式】手动更新磁贴

  1. 创建一个文本框和一个按钮,当按钮点击时,磁贴就会显示文本框的文本
  2. 给按钮绑定一个事件,代码如下
private void changeBtn_Click(object sender, RoutedEventArgs e)
        {
            //获取模板
            var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text01);
            //获取标签名为text的元素值
            var tileAttributes = tileXml.GetElementsByTagName("text");
            //将获取的元素值追加一个值
            tileAttributes[0].AppendChild(tileXml.CreateTextNode(titleBox.Text));
            //创建一个磁贴类,将xml数据填充到磁贴中
            var tileNotification = new TileNotification(tileXml);
            //向磁贴更新
            TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
        }

这样,当点击按钮时,应用磁贴就会显示文本框输入的值

【第二种方式】轮询更新磁贴

  1. 首先你得有台服务器,或者你也可以解析第三方的数据为磁贴xml格式,然后再进行轮询
  2. 下面介绍用MVC做服务器端,然后uwp再每半小时向服务器获取一次数据

如果你不了解MVC你可以跳过此步骤,然后看下面如何通过网络获取数据

  1. 创建一个MVC项目
  2. 添加一个Hello控制器

并在控制器的Index默认方法里添加以下数据:

public ActionResult Index()
        {
            ViewBag.Title = "巴黎发生恐袭";
            ViewBag.Content = "数百人遇难";
            ViewBag.Type = "新闻";
            return View();
        }

然后再Hello视图中添加Index视图,把布局页模板页什么的勾选去掉,然后新建了一个.cshtml文件,最后你要把Index.cshtml中的所有html数据全部清空替换成以下文档结构

<tile>
    <visual version="2">
        <binding template="TileSquare150x150Text01" fallback="TileSquareText01">
            <text id="1">@ViewBag.Title</text>
            <text id="2">@ViewBag.Content</text>
            <text id="3">@ViewBag.Type</text>
            <text id="4">@DateTime.Now.ToLongTimeString()</text>
        </binding>
    </visual>
</tile>

待会再介绍模板问题

最后一步,回到UWP项目中,创建一个按钮(当按下这个按钮时,以后磁贴会按照你设定时间进行自动轮询更新),添加一个单击事件事件,添加以下代码:

 

private void AutoUpdate_Click(object sender, RoutedEventArgs e)
        {
            //设置一个Uri类型变量保存服务器的xml地址
            var tileContent = new Uri("http://localhost:61341/UWP/Index");
            //设置轮询时间变量为半小时,也可以设置其他时间
            var requestedInterval = PeriodicUpdateRecurrence.HalfHour;
            //创建磁贴更新实例
            var updater = TileUpdateManager.CreateTileUpdaterForApplication();
            //开始轮询更新,传入服务器磁贴xml文件地址和轮询时间
            updater.StartPeriodicUpdate(tileContent, requestedInterval);
        }

这样一来你的应用就实现了自动磁贴更新的功能。

下面我们再来讨论一下磁贴模板问题:

  1. 不同磁贴尺寸有不同的格式,你要为每种磁贴同时设置不同模板
  2. 模板有固定格式和不同资源类型,你可以参考:https://msdn.microsoft.com/zh-cn/library/windows/apps/br212859.aspx
  3. 谢谢!
目录
相关文章
|
2月前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
89 0
|
2月前
|
API 开发工具 UED
在 UWP 中使用 Windows App SDK
【10月更文挑战第17天】在UWP中使用Windows App SDK可增强应用功能和性能。首先了解SDK特性,接着安装Visual Studio 2022及以上版本,并从微软官网下载安装SDK。配置项目时,确保目标版本支持SDK,添加SDK引用后即可使用新API提升应用体验。开发过程中应充分利用调试工具进行测试,确保应用的兼容性和稳定性。
|
2月前
|
Ubuntu Linux Python
如何利用wsl-Ubuntu里conda用来给Windows的PyCharm开发
如何在WSL(Windows Subsystem for Linux)的Ubuntu环境中使用conda虚拟环境来为Windows上的PyCharm开发设置Python解释器。
209 0
|
3月前
|
存储 安全 程序员
Windows任务管理器开发原理与实现
Windows任务管理器开发原理与实现
|
5月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
143 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
4月前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
228 0
|
4月前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
437 0
|
6月前
|
网络安全 C++ Windows
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
|
6月前
|
Windows
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
|
6月前
|
编解码 Windows
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
XviD是开源MPEG-4视频编码器,与DivX相似但后者非开源。早期MP4常使用XviD或DivX编码,现已被H.264取代。在Windows上集成FFmpeg的XviD编解码库libxvid,需访问<https://labs.xvid.com/source/>下载源码,解压后在MSYS环境中配置、编译和安装。之后重新配置FFmpeg,启用libxvid并编译安装。详细步骤包括configure命令、make和make install。成功后,通过`ffmpeg -version`检查是否启用libxvid。更多音视频开发技术可参考《FFmpeg开发实战:从零基础到短视频上线》。
133 0
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid