私のアプリの 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
は、アプリのローカル ストレージに存在します (名前はメソッド パラメーターの Id に対応します) が、それでも機能しません。問題の画像は 200KB 未満で、1920x1080 です。(タイルに合わせて拡大縮小されると思いますか?)
私は何を間違っていますか?ローカル ストレージに保存されている画像でタイルを更新するにはどうすればよいですか?