定期更新中的多个瓷砖

时间:2012-09-10 16:26:53

标签: windows-8 microsoft-metro

我可以将多个图块作为XML返回吗? “天气”,“财经”或“新闻”应用程序如何在平铺中显示多个结果?我尝试创建这样的XML,但它不起作用:

<tile>
    <visual lang="en-US">
        <binding template="TileWideSmallImageAndText04">
            <image id="1" src="URLOFIMG" alt="alt text"/>
            <text id="1">Some Text</text>
            <text id="2">Text Field 2</text>
        </binding>
        <binding template="TileWideSmallImageAndText04">
            <image id="1" src="URL2" alt="alt text"/>
            <text id="1">SOME TEXT</text>
            <text id="2">Text Field 2</text>
        </binding>
        <binding template="TileWideSmallImageAndText04">
            <image id="1" src="URL" alt="alt text"/>
            <text id="1">TEXT</text>
            <text id="2">Text Field 2</text>
        </binding>
    </visual>
</tile>

3 个答案:

答案 0 :(得分:4)

不允许将多个宽图块绑定(或多个方块图块绑定)放置到单个XML有效内容中。换句话说,磁贴通知XML有效负载最多可以包含一个宽的磁贴绑定和最多一个方形磁贴绑定。

也就是说,可以通过定期更新或任何其他传送机制(本地,推送或预定)提供多个磁贴通知。

默认情况下,图块仅显示最新的图块通知。通过enabling the tile notification queue,一次可以为任何给定的磁贴存储最多五个磁贴通知。

然后可以将定期更新配置为使用TileUpdater.StartPeriodicUpdate从一个网址开始下载每个时间间隔,或使用TileUpdater.StartPeriodicUpdateBatch从最多五个网址下载。通过提供返回不同磁贴通知XML有效负载的URL,将在磁贴上显示多个通知。

有关定期更新的详细信息: http://msdn.microsoft.com/en-us/library/windows/apps/hh761476

答案 1 :(得分:1)

您是否尝试过查看sample app

    private void SendTileNotificationWithStringManipulation_Click(object sender, RoutedEventArgs e) 
    { 
        Button button = sender as Button; 
        if (button != null) 
        { 
            string tileXmlString = "<tile>" 
                                 + "<visual>" 
                                 + "<binding template='TileWideText04'>" 
                                 + "<text id='1'>Send to a secondary tile from strings</text>" 
                                 + "</binding>" 
                                 + "<binding template='TileSquareText04'>" 
                                 + "<text id='1'>Send to a secondary tile from strings</text>" 
                                 + "</binding>" 
                                 + "</visual>" 
                                 + "</tile>"; 

            Windows.Data.Xml.Dom.XmlDocument tileDOM = new Windows.Data.Xml.Dom.XmlDocument(); 
            tileDOM.LoadXml(tileXmlString); 
            TileNotification tile = new TileNotification(tileDOM); 

            // Send the notification to the secondary tile by creating a secondary tile updater 
            TileUpdateManager.CreateTileUpdaterForSecondaryTile(MainPage.dynamicTileId).Update(tile); 

            rootPage.NotifyUser("Tile notification sent to " + MainPage.dynamicTileId, NotifyType.StatusMessage); 
        } 
    } 

如何固定PinLiveTile_Click()

中找到的辅助磁贴的示例

编辑: 要定期更新,请参阅here

答案 2 :(得分:0)

Nathan指出你只能有一个正方形和一个宽的瓷砖,但要看一下宽瓷砖的范围(特别是TileWidePeekImageCollection06) 可在以下位置找到可用磁贴列表: http://msdn.microsoft.com/en-us/library/windows/apps/hh761491.aspx#TileWideImageAndText01

如果这仍然无法满足您的要求,那么唯一的另一种方法是使用辅助磁贴。