venerdì 2 agosto 2013

[WP7] Aggiungere/Aggiornare/Rimuovere LiveTile a Start

Esempio che spiega come aggiungere/rimuovere le LiveTile a Start.

internal enum Operation
{
    Add,
    Remove
}
 
public partial class MainPage : PhoneApplicationPage
{
    private void LiveTile(Operation operation)
    {
        const string TITLE = "LiveTile";
 
        ShellTile tile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("TuoParametro=" + TITLE));
 
        switch (operation)
        {
            //Aggiungo/Aggiorno LiveTile
            case Operation.Add:
                StandardTileData liveTile = new StandardTileData
                {
                    Title = TITLE,
                    BackgroundImage = new Uri("Background.png"UriKind.RelativeOrAbsolute),
                    BackBackgroundImage = new Uri("BackBackground.png"UriKind.RelativeOrAbsolute),
                    Count = 0,
                    BackTitle = "LiveTile 1.0",
                    BackContent = "Esempio LiveTile",
                };
 
                if (tile == null)
                {
                    //LiveTile non esistente -> Aggiugno a start
                    try
                    {
                        ShellTile.Create(new Uri("/MainoPage.xaml?TuoParametro=" + liveTile.Title, UriKind.Relative), liveTile);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
                else
                {
                    //LiveTile esistente -> Aggiorno
                    tile.Update(liveTile);
                }
                break;
            //Rimuovo LiveTile
            case Operation.Remove:
                if (tile != null)
                {
                    //LiveTile esistente -> Rimuovo
                    try
                    {
                        tile.Delete();
                        MessageBox.Show("LiveTile rimossa correttamente");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message); ;
                    }
                }
                break;
        }
    }

    public MainPage()
    {
        InitializeComponent();
    }
 
    private void btnAggiungi_Click(object sender, RoutedEventArgs e)
    {
        LiveTile(Operation.Add);
    }
 
    private void btnRimuovi_Click(object sender, RoutedEventArgs e)
    {
        LiveTile(Operation.Remove);
    }
}

NB: Per le due immagini (Background.png e BackBackground.png) settare la proprietà Operazione di compilazione come Contenuto

Nessun commento:

Posta un commento