我的应用的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。 (我认为它们会缩放以适应瓷砖?)
我做错了什么?如何使用存储在本地存储中的图像更新磁贴?
答案 0 :(得分:2)
您的图片必须<= 1024x1024。来自http://msdn.microsoft.com/en-us/library/windows/apps/Hh781198.aspx:
平铺图像的尺寸必须小于或等于1024x1024 像素,文件大小小于或等于200 KB,并且是 输入.png,.jpg,.jpeg或.gif。