2011-09-09 6 views
9

Estoy creando un mosaico vivo en el dispositivo con el siguiente código:WP7 Mango: ¿Cómo elimino un mosaico en 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); 

En un momento posterior quisiera eliminar la imagen de mosaico en vivo y tener que volver a la icono de la aplicación cuando se cubrió. es posible?

+0

no puedes utilizar el mismo código para restaurar la imagen original? Después de todo, el original viene con su aplicación. – Praetorian

+0

Sí, pero el problema es que también estoy usando la imagen de Atrás y el contenido del mosaico. Cuando restauro la imagen original, no quiero que se voltee. Establecer el contenido de la espalda y la imagen del fondo de la página como nulo tampoco funciona, así que pensé que sería mejor ver si hay una forma de borrar mi mosaico por completo. –

+5

¿El http://stackoverflow.com/questions/6573806/mango-application-tile-remove-back no es el truco? –

Respuesta

6

De acuerdo con esta blog que shoudl utiliza este código

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

Ese código muestra cómo eliminar un mosaico secundario y no cómo restablecer el mosaico primario de la aplicación. –

+0

Lo siento, he entendido mal la pregunta. –

3

estoy usando el siguiente código al restablecer mi teja vuelta a la normalidad cada vez que se inicia la aplicación:

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(); es 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); 
     } 

Basado en la investigación y gracias a robertftw

Cuestiones relacionadas