C#的Silverlight 3 - 编程导航页面之间?(C# Silverlight 3 - P

2019-07-20 05:15发布

说我有一个页的数目的C#Silverlight 3应用程序。 第一页称为主页,第二页被称为细节。 导航到细节的唯一途径是编程。 我该怎么做呢?! 四处寻找答案,我的一切都是发现XAML URI mapper实现....

帮助非常感谢

Answer 1:

你是否尝试过的NavigationService?

this.NavigationService.Navigate(新URI( “Details.xaml”,UriKind.Relative));



Answer 2:

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>

即使你的“详细信息”页面应该(不管你说什么。)映射



Answer 3:

C#App.Current.Host.NavigationState = “/欢迎”;

XAML



Answer 4:

最好的解决办法是:

此代码添加到您的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);
}

然后,页面之间导航,你只需要调用:

App.Navigate(new OtherSamplePage());


Answer 5:

尝试使用此。 这为我工作。

((System.Windows.Controls.Frame)(this.Parent))导航(新URI( “/导入”,UriKind.Relative));



文章来源: C# Silverlight 3 - Programmatically Navigate Between Pages?