2012-12-19 3 views

risposta

7

Poiché XNA è supportato solo per le app WP7, è necessario verificare se l'app è in esecuzione su WP8 e, in tal caso, utilizzare reflection per aggiornare la tile alle icone WP8. C'è un buon esempio di come quel frammento di codice sarebbe simile a questo articolo di MSDN @Adding Windows Phone 8 Tile functionality to Windows Phone OS 7.1 apps

Potrebbe essere più facile su di voi per utilizzare la libreria Mangopollo che ha questa capacità built-in con le API simile a quella di WP8. Ecco il codice sorgente che avvolge le API WP8 per essere chiamato da WP7 @http://mangopollo.codeplex.com/SourceControl/changeset/view/100687#2023247

Ed ecco il Mangopollo frammento di codice da utilizzare piastrelle larghe WP8 in applicazioni WP7:

if (!Utils.CanUseLiveTiles) 
{ 
    MessageBox.Show("This feature needs Windows Phone 8"); 
    return; 
} 

try 
{ 
    var mytile = new FlipTileData 
    { 
     Title = "wide flip tile", 
     BackTitle = "created by", 
     BackContent = "Rudy Huyn", 
     Count = 9, 
     SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative), 
     BackgroundImage = new Uri("/Assets/Background336x336_1.png", UriKind.Relative), 
     BackBackgroundImage = new Uri("/Assets/Background336x336_2.png", UriKind.Relative), 
     WideBackContent = "This is a very long long text to demonstrate the back content of a wide flip tile", 
     WideBackgroundImage = new Uri("/Assets/Background691x336_1.png", UriKind.Relative), 
     WideBackBackgroundImage = new Uri("/Assets/Background691x336_2.png", UriKind.Relative) 
    }; 

#if ALTERNATIVE_SOLUTION 
    var mytile = Mangopollo.Tiles.TilesCreator.CreateFlipTile("flip tile", 
    "created by", "Rudy Huyn", 
    "This is a very long long text to demonstrate the back content of a wide flip tile", 
    9, new Uri("/Assets/logo159x159.png", UriKind.Relative), 
    new Uri("/Assets/Background336x336_1.png", UriKind.Relative), 
    new Uri("/Assets/Background336x336_2.png", UriKind.Relative), 
    new Uri("/Assets/Background691x336_1.png", UriKind.Relative), 
    new Uri("/Assets/Background691x336_2.png", UriKind.Relative)); 
#endif 
    ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20wipe%20flip%20tile", 
     UriKind.Relative), mytile, true); 
} 
catch 
{ 
    MessageBox.Show("remove tile before create it again"); 
} 

Un'altra cosa da ricordare è che le altre Le API WP8 possono essere utilizzate direttamente da XNA anche se le app XNA sono app WP7. Ecco un esempio su come use WP8 in-app purhcase on WP7 apps (incluso XNA). Ed ecco un esempio su how to use new WP8 Launchers & Choosers in WP7 apps (scorrere verso il basso).

+0

L'ultima istruzione dello snippet di codice sopra dall'app di esempio Mangopollo utilizza Uri di MainPage.xaml per avviare l'app. Quale Uri dovrebbe essere usato per un gioco XNA? –