C#Silverlight 3-Navega programáticamente entre páginas?
silverlight-3.0 navigation (5)
¿Has probado el NavigationService?
this.NavigationService.Navigate (new Uri ("Detalles.xaml", UriKind.Relativo));
Supongamos que tengo una aplicación C # Silverlight 3 con varias páginas. La primera página se llama Inicio y la segunda página se llama Detalles. La única forma de navegar a los detalles es mediante programación. ¡¿Cómo hago esto?! Busqué por todas partes la respuesta y todo lo que encontré son implementaciones de xaml uri mapper ...
Ayuda muy apreciada
do#:
this.navContent.Navigate(new Uri("Welcome", UriKind.Relative));
XAML:
<navigation:Frame
x:Name="navContent"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
Source="Welcome">
<navigation:Frame.UriMapper>
<uriMapper:UriMapper>
<uriMapper:UriMapping Uri="Welcome" MappedUri="/Views/Welcome.xaml" />
<uriMapper:UriMapping Uri="Profile" MappedUri="/Views/Profile.xaml" />
<uriMapper:UriMapping Uri="Details/{id}" MappedUri="/Views/Details.xaml?photoid={id}" />
</uriMapper:UriMapper>
</navigation:Frame.UriMapper>
</navigation:Frame>
Incluso su página de "detalles" debe ser mapeada (a pesar de lo que ha dicho).
C # App.Current.Host.NavigationState = "/ Bienvenido";
XAML
Intenta usar esto. Esto funcionó para mí.
((System.Windows.Controls.Frame) (this.Parent)). Navigate (nuevo Uri ("/ Importar", UriKind.Relativo));
La mejor solución es:
Agregue este código a su App.xaml.cs:
private static Grid root;
private void Application_Startup(object sender, StartupEventArgs e)
{
root = new Grid();
root.Children.Add(new MainPage());
this.RootVisual = root;
}
public static void Navigate(UserControl newPage)
{
UserControl oldPage = root.Children[0] as UserControl;
root.Children.Add(newPage);
root.Children.Remove(oldPage);
}
Y luego, para navegar entre páginas, solo tendrá que llamar:
App.Navigate(new OtherSamplePage());