WP 8.1 Обновление Square AND Wide Tile - Как?
Как мне обновить как квадрат, так и широкую плитку для кода одновременно? Или как определить, какой тип плитки "загружен" на стартовом экране?
У меня есть этот код:
private void JamesBond()
{
var tileXML = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text01);
var tileText = tileXML.GetElementsByTagName("text");
(tileText[0] as XmlElement).InnerText = "First text";
(tileText[1] as XmlElement).InnerText = "Second text";
(tileText[2] as XmlElement).InnerText = "Third text";
(tileText[3] as XmlElement).InnerText = "Last text";
var tileNotification = new TileNotification(tileXML);
var tileXMLw = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Text01);
var tileTextw = tileXMLw.GetElementsByTagName("text");
(tileTextw[0] as XmlElement).InnerText = "Wide First text";
(tileTextw[1] as XmlElement).InnerText = "Wide Second text";
(tileTextw[2] as XmlElement).InnerText = "Wide Third text";
(tileTextw[3] as XmlElement).InnerText = "Wide Last text";
var tileNotificationW = new TileNotification(tileXMLw);
TileUpdateManager.CreateTileUpdaterForApplication().Clear();
TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotificationW);
}
}
... и что он делает, он обновляет широкую плитку. Но если это квадратная плитка, то она обновляется..... иногда. И большую часть времени, это пусто. Итак, как-то это работает. Но не правильно....
Может ли кто-нибудь помочь мне здесь?
PS: я также попытался получить экземпляр TileUpdater и сделать это все в одном и том же экземпляре... что еще хуже, он показывает только широкую плитку...
Заранее спасибо.
С уважением, ben0bi
1 ответ
Решил это. Согласно MSDN, мы должны объединить два xml, чтобы они отображались под одним и тем же "визуальным" тегом.
Я сделал это так:
string xml="<tile>\n";
xml += "<visual version=\"2\">\n";
xml += " <binding template=\"TileSquare150x150Text01\" fallback=\"TileSquareText01\">\n";
xml += " <text id=\"1\">Row 0</text>\n";
xml += " <text id=\"2\">Row 1</text>\n";
xml += " <text id=\"3\">Row 2</text>\n";
xml += " <text id=\"4\">Row 3</text>\n";
xml += " </binding>\n";
xml += " <binding template=\"TileWide310x150Text01\" fallback=\"TileWideText01\">\n";
xml += " <text id=\"1\">Wide Row 0</text>\n";
xml += " <text id=\"2\">Wide Row 1</text>\n";
xml += " <text id=\"3\">Wide Row 2</text>\n";
xml += " <text id=\"4\">Wide Row 3</text>\n";
xml += " </binding>\n";
xml+="</visual>\n";
xml +="</tile>";
XmlDocument txml = new XmlDocument();
txml.LoadXml(xml);
TileNotification tNotification = new TileNotification(txml);
TileUpdateManager.CreateTileUpdaterForApplication().Clear();
TileUpdateManager.CreateTileUpdaterForApplication().Update(tNotification);