【问题标题】:How to navigate to a special frame with prism for store apps in Windows 8.1如何使用棱镜导航到 Windows 8.1 中的商店应用程序的特殊框架
【发布时间】:2016-02-07 12:17:32
【问题描述】:

我在 Windows RT 和 UWP 应用程序开发领域相对较新,现在我有一个 Windows 8.1 项目,我想在其中使用 Prism。该应用程序(一个问答游戏)由三个页面组成,我想实现一个在所有页面上都相同的页眉。我进行了很多搜索,但没有找到任何解决方案,如何使用 prism 为商店应用程序实现这一点。如果没有 Prism,我可以导航到主页,然后调用函数“myTargetFrame.Navigate(typeOf(secondPage));”但我怎么能在我的情况下用棱镜做到这一点,这可能吗?

提前感谢您的帮助

【问题讨论】:

  • 您是否考虑过 Template10 而不是 Prism? aka.ms/template10 - 或在 Visual Studio 扩展管理器中搜索模板 10 并安装项目模板。导航和框架与 Prism 99% 相同。

标签: c# windows-runtime winrt-xaml prism navigationservice


【解决方案1】:

这就是你的做法。

public sealed partial class App : PrismUnityApplication
{
    public App()
    {
        InitializeComponent();
    }

    protected override UIElement CreateShell(Frame rootFrame)
    {
        var masterPage = Container.Resolve<MasterPage>();
        masterPage.MyFrame = rootFrame;
        return masterPage;
    }

    protected override Task OnLaunchApplicationAsync(LaunchActivatedEventArgs args)
    {
        NavigationService.Navigate(Keys.MainPage, null);
        return Task.FromResult(true);
    }
}

然后。

public sealed partial class MasterPage : Page
{
    public MainPage()
    {
        InitializeComponent();
        NavigationCacheMode = NavigationCacheMode.Enabled;
    }

    public Frame MyFrame
    {
        get { return (Frame)GetValue(MyFrameProperty); }
        set { SetValue(MyFrameProperty, value); }
    }
    public static readonly DependencyProperty MyFrameProperty =
        DependencyProperty.Register(nameof(MyFrame), typeof(Frame), 
            typeof(MasterPage), new PropertyMetadata(null));
}

然后。

<Page>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <CommandBar Grid.Row="0" Content="Header" />
        <ContentPresenter Grid.Row="1" Content="{x:Bind MyFrame, Mode=OneWay}" />
    </Grid>
</Page>

再次,我建议你看看@http://aka.ms/template10

祝你好运。

【讨论】:

  • 非常感谢杰瑞!但是我正在使用 Windows 8.1 项目,这也可以吗?据我所知,模板 10 仅适用于 Windows 10 项目(不幸的是)。顺便说一句,我非常喜欢您的 MVA 课程,它们很棒!娱乐一个信息,我希望会越来越多;-)
  • 不,抱歉,我给了你一个 Windows 10 答案。你看过我关于 Prism for Windows 8 的课程吗?结合我的回答可能会做到。
  • 我不确定我是否看过它,但如果没有,我会赶上这个 ;-) 谢谢你的帮助 - 希望下一个项目在 Windows 10 上。
  • 你好 Jerry,有没有可用的示例,我可以看到如何使用模板 10 执行此操作? (只是一个简单的导航标题,没有汉堡菜单)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 2016-06-06
相关资源
最近更新 更多