Čtvercová a široká dlaždice v jedné šabloně

Pokud dáte uživateli tu možnost, tak si může vybrat mezi čtvercovou a širokou dlaždicí. Obě velikosti dlaždic mohou být "živé". Jak ale poznáte, kterou šablonu pro dlaždici použít? Vlastně to řešit ani nemusíte. V jedné aktualizaci dlaždice můžete poslat informaci pro obě velikosti a systém použije tu správnou. Podívejte se do katalogu dlaždic, jak vypadají jednotlivé XML šablony. Element binding, který obsahuje popis dlaždice, můžete v šabloně použít dvakrát. Jednou pro čtvercovou a jednou pro širokou dlaždici:

<tile>

<visual>

<binding template="TileSquareBlock">

<text id="1">Text Field 1</text>

<text id="2">Text Field 2</text>

</binding>

  <binding template="TileWideText01"> 
  <text id="1">Text Header Field 1</text> 
  <text id="2">Text Field 2</text> 
  <text id="3">Text Field 3</text> 
  <text id="4">Text Field 4</text> 
  <text id="5">Text Field 5</text> 
  </binding> 

</visual>

</tile>

 

Implementace pomocí C# může vypadat například takto:

XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText01);

XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");

tileTextAttributes[0].InnerText = _txtTileText.Text;

 

 

XmlDocument squareTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareText04);

XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text");

squareTileTextAttributes[0].InnerText = _txtTileText.Text;

 

 

IXmlNode node = tileXml.ImportNode(squareTileXml.GetElementsByTagName("binding").Item(0), true);

tileXml.GetElementsByTagName("visual").Item(0).AppendChild(node);

 

ScheduledTileNotification stn = new ScheduledTileNotification(tileXml, DateTime.Now.AddSeconds(10));

stn.ExpirationTime = DateTime.Now.AddSeconds(20);

 

TileUpdateManager.CreateTileUpdaterForApplication().AddToSchedule(stn);

Pomocí objektu ScheduledTileNotification vytvoříte dlaždici, která se zobrazí v určený čas.

Štěpán, @stepanb