使用实时瓷砖的正确方法?

时间:2012-12-04 16:08:11

标签: c# windows-8

我目前正在为我的Windows 8 App实现实时图块。现在我想要两种不同的瓷砖样式(对于小样式和放大样式)。我试过这样的话:

            var tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
            var tileUpdaterBig = TileUpdateManager.CreateTileUpdaterForApplication();
            tileUpdater.Clear();
            tileUpdaterBig.Clear();
            tileUpdater.EnableNotificationQueue(true);
            tileUpdaterBig.EnableNotificationQueue(true);

            foreach (var item in Articles)
            {
                var xml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareText04);
                var bigXML = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText09);
                var textElements = xml.GetElementsByTagName("text");
                var bigTextElements = bigXML.GetElementsByTagName("text");
                textElements[0].AppendChild(xml.CreateTextNode(item.Title));
                bigTextElements[0].AppendChild(bigXML.CreateTextNode(item.Title));
                bigTextElements[1].AppendChild(bigXML.CreateTextNode(item.Preview));
                var notification = new TileNotification(xml);
                var notificationBig = new TileNotification(bigXML);
                tileUpdater.Update(notification);
                tileUpdaterBig.Update(notificationBig);
            } 

这是正确的方法吗?

此外,似乎瓷砖内部只显示了一些数据,而不是列表中的每个元素。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您只需要一个TileUpdater。查看this article中的代码示例(向下滚动到“这是最终代码”)。

基本上,由于您不知道用户是否已将您的磁贴放在方形或宽格式中,因此您需要在一个有效负载中发送两者的更新。

如果您希望最后5次更新全部滚动显示图块,则只应将EnableNotificationQueue设置为true。如果您只想显示最新更新并替换其他更新,请将此设置为false(或不执行任何操作,因为false是默认值)。