由于设置图像时出错,Live Tile无法正常工作?

时间:2013-04-06 23:26:17

标签: c# windows-8 notifications windows-store-apps live-tile

我的应用的App.xaml.cs页面包含以下方法。

public static void SendLiveTileUpdate(Record rr)
{
    string imageUristring = "ms-appdata:///local/" + rr.Id.ToString() + ".jpg";

    XmlDocument wideTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideImageAndText01);

    XmlNodeList wideTileTextAttrib = wideTileXml.GetElementsByTagName("text");
    wideTileTextAttrib[0].InnerText = rr.Name;

    XmlNodeList wideTileImageAttrib = wideTileXml.GetElementsByTagName("image");

    //((XmlElement)wideTileImageAttrib[0]).SetAttribute("src", "ms-appdata:///local/" + rr.Id.ToString() + ".jpg");
    ((XmlElement)wideTileImageAttrib[0]).SetAttribute("src", imageUristring);
    ((XmlElement)wideTileImageAttrib[0]).SetAttribute("alt", "Image");

    //Wide tile Layout done

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

    XmlNodeList sqTileImageAttrib = sqTileXml.GetElementsByTagName("image");
    ((XmlElement)sqTileImageAttrib[0]).SetAttribute("src", imageUristring);
    ((XmlElement)sqTileImageAttrib[0]).SetAttribute("alt", "Image");

    IXmlNode node = wideTileXml.ImportNode(sqTileXml.GetElementsByTagName("binding").Item(0), true);
    wideTileXml.GetElementsByTagName("visual").Item(0).AppendChild(node);

    //Square tile set and added to wide tile xml

    TileNotification tileNot = new TileNotification(wideTileXml);

    tileNot.ExpirationTime = DateTime.Now.AddDays(5);

    updater.Update(tileNot);
}

在页面上还有全局变量更新程序,它在页面初始化时用于调用EnableNotificationQueue(true)(然后稍后更新队列,如图所示)。

问题在于,当运行此代码时,它无法正常工作。我推断这与图像有关,因为当图像分配被排除时,实时图块会更新rr.Id.ToString(),但包括图块永远不会更新。 imageUristring引用的此图像存在于应用程序本地存储中(并且名称与方法参数的Id对应),但它仍然不起作用。有问题的图像不到200KB,是1920x1080。 (我认为它们会缩放以适应瓷砖?)

我做错了什么?如何使用存储在本地存储中的图像更新磁贴?

1 个答案:

答案 0 :(得分:2)

您的图片必须<= 1024x1024。来自http://msdn.microsoft.com/en-us/library/windows/apps/Hh781198.aspx

  

平铺图像的尺寸必须小于或等于1024x1024   像素,文件大小小于或等于200 KB,并且是   输入.png,.jpg,.jpeg或.gif。