2010-05-05 11 views
5

Tratto da Exercise 1: Creating Windows Phone Applications with Microsoft Visual Studio 2010 Express for Windows PhoneQual è la differenza tra il metodo NavigationService.Navigate() e la proprietà PhoneApplicationFrame.Source?

Task 3: Fase 9

// navigate 
this.NavigationService.Navigate(new Uri("/PuzzlePage.xaml", UriKind.Relative)); 

Nota:
La classe PhoneApplicationPage fornisce metodi e proprietà per navigare le pagine attraverso la sua proprietà NavigationService. È possibile chiamare il metodo Navigate di NavigationService e passare l'URI per la pagina come parametro. Puoi anche utilizzare i metodi GoBack e GoForward per navigare indietro o in avanti nella cronologia di navigazione. Il pulsante back hardware consente anche la navigazione all'indietro all'interno di un'applicazione. Il gestore eventi mostrato sopra utilizza NavigationService per andare alla pagina PuzzlePage.xaml.

Task 4: Fase 3

(RootVisual as Microsoft.Phone.Controls.PhoneApplicationFrame).Source = 
    new Uri("/ErrorPage.xaml", UriKind.Relative); 

Nota:
...
Ogni volta che si imposta la proprietà Source per un valore che è diverso dal contenuto visualizzato, il telaio naviga a il nuovo contenuto.
...

Quali sono le differenze e le somiglianze di entrambe le tecniche?

risposta

6

In sostanza, entrambi fanno la stessa cosa.

NavigationService.Navigate è un servizio di navigazione Silverlight nativo per consentire la navigazione asincrona da un file xaml a un altro (eliminando la necessità di caricare i comandi utente) - c'è una piccola panoramica eccellente here.

La differenza è che NavigationService ha la possibilità di andare avanti e indietro in modo browser-esque. L'impostazione della proprietà Source di PhoneApplicationFrame non.

Ancora presto e probabilmente è troppo presto per formulare un'ipotesi su quale utilizzare.

NavigationService ha il vantaggio di essere una classe nativa di Silverlight, tuttavia PhoneApplicationFrame.Source è specifico per WP.

+1

PhoneApplicationFrame.Source è ereditato da Frame e non è quindi specifico per Windows Phone. Non riesco a testarlo in questo momento, ma penso che sia possibile navigare attraverso lo stack di pagine anche quando si utilizza la proprietà Source. Una differenza tra il metodo Navigate e la proprietà Source è che non è possibile chiamare Navigate su una pagina che non è stata ancora caricata, mentre è possibile impostare la proprietà Source ogni volta che si desidera. –

+0

"non è possibile chiamare Naviga su una pagina che non è stata ancora caricata"? Questo significa che non posso navigare verso una pagina che non è mai stata esplorata prima? Molto confuso. –

Problemi correlati