Mi comprensión es que cada aplicación decide dónde hacer esto por sí misma. Normalmente, lo haría siempre que también esté actualizando su UI normal con la misma información, p. si tu aplicación es un lector de RSS y acabas de descargar un nuevo elemento para mostrar, allí es donde también actualizas tu mosaico publicando una notificación. En la aplicación JavaScript de ejemplo, esto se hace desde los controladores de eventos para los controles por conveniencia.
En cuanto al código para cambiar la ficha, debería ser casi idéntica a la versión de JavaScript, ya que en ambos casos utiliza Windows.UI.Notifications namespace. A continuación se muestra una aplicación C# muy simple que actualiza el mosaico al hacer clic en el botón. XAML:
<UserControl x:Class="TileNotificationCS.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
d:DesignHeight="768" d:DesignWidth="1366">
<StackPanel x:Name="LayoutRoot" Background="#FF0C0C0C">
<TextBox x:Name="message"/>
<Button x:Name="changeTile" Content="Change Tile" Click="changeTile_Click" />
</StackPanel>
</UserControl>
y código detrás:
using System;
using Windows.Data.Xml.Dom;
using Windows.UI.Notifications;
using Windows.UI.Xaml;
namespace TileNotificationCS
{
partial class MainPage
{
TileUpdater tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
public MainPage()
{
InitializeComponent();
}
private void changeTile_Click(object sender, RoutedEventArgs e)
{
XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText01);
XmlElement textElement = (XmlElement)tileXml.GetElementsByTagName("text")[0];
textElement.AppendChild(tileXml.CreateTextNode(message.Text));
tileUpdater.Update(new TileNotification(tileXml));
}
}
}
No se olvide que usted necesita una amplia baldosas para el texto aparezca - conseguirlo, establecen alguna imagen de "Wide Logo" en el Paquete .appxmanifest.
Ah! Mi ficha seguía siendo un cuadrado. Lo cambió al ancho y funcionó. –