Windows 10移动宽带不更新?

时间:2015-10-09 05:56:41

标签: windows-runtime win-universal-app

我在Windows通用应用程序开发中从Square Tile切换到Wide Tile时遇到更新宽实时图块的问题。它在Windows表面和桌面上工作正常但不在手机上。它没有更新宽瓷砖有人可以帮帮我吗?

默认情况下,Wide Tile对我们来说工作正常,但是当我们将它从Square Tile更改为宽tile时,它在模拟器中无效。

以下是我们的总样本代码:

TileUpdateManager.CreateTileUpdaterForApplication().Clear();
             TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);
var _tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150PeekImageAndText03);
            var tileImage = _tileXml.GetElementsByTagName("image")[0] as Windows.Data.Xml.Dom.XmlElement;
            tileImage.SetAttribute("src", "ms-appx:///Assets/Logo.png");
            var tileText = _tileXml.GetElementsByTagName("text");
         (tileText[0] as Windows.Data.Xml.Dom.XmlElement).InnerText = "xyz";
            (tileText[1] as Windows.Data.Xml.Dom.XmlElement).InnerText = "ABC";
            (tileText[2] as Windows.Data.Xml.Dom.XmlElement).InnerText = "EFGH";
            (tileText[3] as Windows.Data.Xml.Dom.XmlElement).InnerText = "IJKL";
            var tileNotification = new TileNotification(_tileXml);
            TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);

            Windows.Data.Xml.Dom.XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150PeekImageAndText02);
          var  tileText1 = tileXml.GetElementsByTagName("text");
            (tileText1[0] as Windows.Data.Xml.Dom.XmlElement).InnerText ="xyz";
            (tileText1[1] as Windows.Data.Xml.Dom.XmlElement).InnerText = "ABC";
            (tileText1[2] as Windows.Data.Xml.Dom.XmlElement).InnerText = "EFGH";
            (tileText1[3] as Windows.Data.Xml.Dom.XmlElement).InnerText ="IJKL";
            (tileText1[4] as Windows.Data.Xml.Dom.XmlElement).InnerText = "Sample App";
             var  tileImage = tileXml.GetElementsByTagName("image")[0] as Windows.Data.Xml.Dom.XmlElement;
        tileImage1.SetAttribute("src", "ms-appx:///Assets/Wide310x150Logo.Scale-100.png");//Assets\Wide310x150Logo.png
            TileUpdateManager.CreateTileUpdaterForApplication().Update(new TileNotification(tileXml));

谢谢,

马杜。

1 个答案:

答案 0 :(得分:0)

首先,您最好使用NotificationsExtensions而不是使用xml模式,这样更容易使用。

然后,您的代码有问题。通过使用官方库NotificationsExtensions,更新磁贴的代码应如下所示:

                //small
                var smallTileContent = TileContentFactory.CreateTileSquare71x71Image();
                smallTileContent.Image.Src = "ms-appdata:///local/" + smallName;

                //medium
                var mediumTileContent = TileContentFactory.CreateTileSquare150x150Image();
                mediumTileContent.RequireSquare71x71Content = true;
                mediumTileContent.Square71x71Content = smallTileContent;
                mediumTileContent.Image.Src = "ms-appdata:///local/" + middleName;
                mediumTileContent.Branding = TileBranding.Logo;

                //wide
                var wideTileContent = TileContentFactory.CreateTileWide310x150Image();
                wideTileContent.RequireSquare150x150Content = true;
                wideTileContent.Square150x150Content = mediumTileContent;
                wideTileContent.Image.Src = "ms-appdata:///local/" + wideName;
                wideTileContent.Branding = TileBranding.Logo;

                var largeTileContent = TileContentFactory.CreateTileSquare310x310Image();
                largeTileContent.RequireWide310x150Content = true;
                largeTileContent.Wide310x150Content = wideTileContent;
                largeTileContent.Image.Src = "ms-appdata:///local/" + largeName;
                largeTileContent.Branding = TileBranding.Logo;

                //Enable notification queue
                TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);

                var notification = largeTileContent.CreateNotification();
                TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);