c# windows-phone-8 windows-phone-8.1

c# - Windows Phone 8.1-Navegación de página



windows-phone-8 windows-phone-8.1 (4)

En Windows Phone 8.1, el método de navegación de página es como esto:

Frame.Navigate(typeof(SecondPage), param);

Significa que irás a ''SecondPage'' y pasarás ''param'' (una clase basada en el objeto).

Si no necesita pasar ningún parámetro, puede usar esto:

Frame.Navigate(typeof(SecondPage));

Puede encontrar la documentación para este enlace de MSDN

Procedente de Windows Phone 8 , nunca pensé que se realizarían muchos cambios en el código de Windows Phone 8.1 . Básicamente me pregunto cómo hacer la navegación de la página al igual que cómo lo haría en Windows Phone 8 . Para hacer eso debes agregar:

NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));

pero ese código no funciona para Windows Phone 8.1 .

¿Puede alguien ayudarme con esto? Si es posible, proporcione enlaces o documentación sobre todos los nuevos métodos de Windows Phone 8.1 .


En caso de que quiera regresar, puede usar:

if(this.Frame.CanGoBack) { this.Frame.GoBack(); }

Si desea volver al hacer clic en el botón Atrás, debe anular el evento del botón de hardware:

HardwareButtons.BackPressed += HardwareButtons_BackPressed; void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) { Frame rootFrame = Window.Current.Content as Frame; if(rootFrame != null && rootFrame.CanGoBack) { rootFrame.GoBack(); e.Handled = true; } }

Asegúrese de establecer e.Handled en verdadero.


// Navigation Without parameters this.Frame.Navigate(typeof(SecondPage)); // Navigation with parameters this.Frame.Navigate(typeof(SecondPage),MyParameters);


Para enviar múltiples parámetros: Es bastante tarde para responder, pero podría ayudar a alguien. Puede crear una clase personalizada, establecer sus parámetros en ella y enviar su objeto como un parámetro a su página de destino.

Por ejemplo. Tu clase personalizada:

public class CustomDataClass { public string name; public string email; } CustomDataClass myData = new CustomDataClass(); myData.name = "abc"; myData.email = "[email protected]"; Frame.Navigate(typeof(SecondPage), myData);

Y luego en la página de destino puede recuperar en OnNavigatedTo una función como esta:

protected override void OnNavigatedTo(NavigationEventArgs e) { CustomDataClass myData2 = e.Parameter as CustomDataClass; string name = myData2.name; string email = myData2.email; }

Espero eso ayude.