自定义Windows应用磁贴通知与显示

发布时间:2025-07-14 12:27

通过表盘自定义显示各种信息 #生活技巧# #数码产品使用技巧# #智能手表功能使用#

TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);    

         #region 通知1         

    #region 定义方形磁贴     

//////////获取模版,因为模版就是xml文档,所以此方法的返回值为XmlDocument类型的对象,在.net中就是使用XmlDocument对象操作xml文档

  XmlDocument tileData = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareImage);    

 /////////获取模版中的Img节点,因为此处使用的TagName来获取节点,模版中可能存在多个Img节点,所以返回值是XmlNodeList,是节点集合而不是单独的节点       

  XmlNodeList imgData = tileData.GetElementsByTagName("image");    

///// //查看模版架构发现,模版中的image元素的图片源是通过src属性指定的,所以要设置取src属性(这是xml不是xaml)
 //////这里src是属性,不是普通节点,所以需要使用方法来设置       

  ((XmlElement)imgData[0]).SetAttribute("src", "ms-appx:///Assets/small2.png");

///////// //更改好模版之后,需要一个磁贴通知对象将其封装起来

     #endregion

    #region 定义宽型磁贴        

   XmlDocument largetileData = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideImage);            

XmlNodeList largeimgData = largetileData.GetElementsByTagName("image");            

((XmlElement)largeimgData[0]).SetAttribute("src", "ms-appx:///Assets/2.png");           

  IXmlNode newnode = largetileData.ImportNode(tileData.GetElementsByTagName("binding").Item(0), true);          

   largetileData.GetElementsByTagName("visual").Item(0).AppendChild(newnode);          

   TileNotification largenotification = new TileNotification(largetileData);           

   ////////调用TileUpdateManager对象将通知发送到开始屏幕    

    TileUpdateManager.CreateTileUpdaterForApplication().Update(largenotification);        

     #endregion       

      #endregion

            #region 通知2  

           #region 定义方形磁贴

            XmlDocument tileData2 = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareImage);       

      XmlNodeList imgData2 = tileData2.GetElementsByTagName("image");          

   ((XmlElement)imgData2[0]).SetAttribute("src", "ms-appx:///Assets/small3.png");

         #endregion

         #region 定义宽型磁贴            

XmlDocument largetileData2 = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideImage);            

XmlNodeList largeimgData2 = largetileData2.GetElementsByTagName("image");          

   ((XmlElement)largeimgData2[0]).SetAttribute("src", "ms-appx:///Assets/3.png");       

      IXmlNode newnode2 = largetileData2.ImportNode(tileData2.GetElementsByTagName("binding").Item(0), true);             largetileData2.GetElementsByTagName("visual").Item(0).AppendChild(newnode2);

     TileNotification largenotification2 = new TileNotification(largetileData2);          

   largenotification2.Tag = "tile2";           

    TileUpdateManager.CreateTileUpdaterForApplication().Update(largenotification2);     

        #endregion          

   #endregion        

这样,自己做的项目就可以在开始屏幕上达到了,我们想要的效果,这里我只写了两个通知(列队通知最多5个),其余的大家可以试试。(上面的代码都有注释)

磁贴更新
1.获取模版,返回xml文档
2.从文档中获取指定节点
3.为节点的属性赋值
4.将方形磁贴附件到宽型磁贴上
5.定义通知
6.发送通知

网址:自定义Windows应用磁贴通知与显示 https://www.yuejiaxmz.com/news/view/1164893

相关内容

windows应用磁贴是什么,如何使用和定制磁贴界面
弥补Windows 11的遗憾,Windows 11的磁贴显示软件
适用于 Windows 应用的磁贴
win10磁贴自定义
Windows 11磁贴秘籍:轻松一招,个性化桌面显示大揭秘!
发送本地磁贴通知
Windows 10 如何添加磁贴 ▷➡️
Windows 11:如何自己创建动态磁贴和小部件
Windows 10系统磁贴调整全攻略:轻松自定义,打造个性化桌面体验
磁贴将告别历史舞台?八年Windows磁贴变迁史

随便看看