2011-09-09 13 views
9

Sto creando una tessera in diretta sul dispositivo con il seguente codice:Mango WP7: come si elimina una tessera dal vivo?

ShellTile tile = ShellTile.ActiveTiles.FirstOrDefault(); 
StandardTileData newTileData = new StandardTileData 
{ 
    BackgroundImage = new Uri(string.Format("isostore:{0}", DefaultLiveTilePath), UriKind.Absolute), 
    Title = "Test" 
}; 
tile.Update(newTileData); 

In un momento successivo vorrei eliminare l'immagine live tile e lo hanno ripristinare l'icona dell'applicazione quando appuntato. È possibile?

+0

non puoi semplicemente utilizzare lo stesso codice per ripristinare l'immagine originale? Dopo tutto, l'originale è confezionato con la tua app. – Praetorian

+0

Sì, ma il problema è che sto usando anche l'immagine posteriore e il contenuto della tessera. Quando ripristino l'immagine originale, non voglio che capiti. L'impostazione del contenuto posteriore e dell'immagine backbackground su null non fa il trucco e quindi ho pensato che sarebbe stato meglio vedere se c'è un modo per eliminare del tutto il mio tile. –

+5

http://stackoverflow.com/questions/6573806/mango-application-tile-remove-back non è il trucco? –

risposta

6

Secondo questo blog si shoudl utilizza questo codice

public void DeleteExistingTile() 
{ 
    var foundTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("DetailId=123")); 

    // If the Tile was found, then delete it. 
    if (foundTile != null) 
    { 
     foundTile.Delete(); 
    } 
} 
+0

Questo codice mostra come eliminare un riquadro secondario e non come reimpostare il riquadro principale dell'app. –

+0

Mi spiace, ho frainteso la domanda. –

3

Sto utilizzando il seguente codice quando si reimposta il mio piastrelle di nuovo al normale ogni volta che inizia app:

private void ResetLiveTileToNormal() 
    { 
     ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(); 


     ShellTileData shellData = new StandardTileData 
     { 
      Title = "XXXXXXXX", 
      Count = 0, 
      BackContent = "", 
      BackTitle = "", 
      BackBackgroundImage = new Uri("", UriKind.Relative), 
      BackgroundImage = new Uri(@"/Images/LiveTiles/XXXXXX.png", UriKind.Relative) 
     }; 
     TileToFind.Update(shellData); 
    } 
2

ShellTile.ActiveTiles.FirstOrDefault(); è obsoleto.

void clearTile() { 

      ShellTileData tileData = new StandardTileData 
      { 
       Title = "", 
       Count = 0, 
       BackContent = "", 
       BackTitle = "", 
       BackBackgroundImage = new Uri("", UriKind.Relative), 
       BackgroundImage = new Uri(@"/ApplicationIcon.png", UriKind.Relative) 
      }; 
      IEnumerator<ShellTile> it = ShellTile.ActiveTiles.GetEnumerator(); 
      it.MoveNext(); 
      ShellTile tile = it.Current; 
      tile.Update(tileData); 
     } 

Sulla base di ricerca e grazie alla robertftw