Страница 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);
}
На странице также есть глобальная переменная updater, которая используется при инициализации страницы для вызова EnableNotificationQueue(true)
(затем позже для обновления очереди, как показано).
Проблема в том, что когда этот код запускается, он не работает. Я пришел к выводу, что это как-то связано с изображениями, потому что, когда назначения изображений исключены, живая плитка обновляется со значением rr.Id.ToString()
, но включенная плитка никогда не обновляется. эти изображения, на которые ссылается imageUristring
, присутствуют в локальном хранилище приложения (и имя соответствует идентификатору параметра метода), но все равно не работает. Рассматриваемые изображения имеют размер менее 200 КБ и имеют разрешение 1920x1080. (Думаю, они будут масштабироваться под тайл?)
Что я делаю не так? Как я могу заставить плитку обновляться изображением, хранящимся в локальном хранилище?