我有一个使用C# Silverlight 3开发的应用程序,其中包含多个页面。第一页名为“首页”,第二页名为“详情”。唯一的导航方式是通过编程实现。我该如何实现这一点?!我已经在各处寻找答案,但只找到了XAML URI映射器的实现方法...非常感谢您的帮助。
c#:
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>
您尝试过NavigationService吗?
this.NavigationService.Navigate(new Uri("Details.xaml", UriKind.Relative));
(此代码可用于导航到名为“Details.xaml”的页面)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);
}
然后,要在页面之间导航,您只需要调用:
App.Navigate(new OtherSamplePage());
试着使用这个。这对我很有效。
((System.Windows.Controls.Frame)(this.Parent)).Navigate(new Uri("/Import",UriKind.Relative));
尝试使用此代码。这在我的情况下有效。