WinRT - 框架导航和AppBars

时间:2015-05-17 11:35:19

标签: c# xaml windows-runtime

我正在尝试为WinRT实施自定义导航系统(特别是 - Windows Phone 8.1)。我想创建一个HostPage,而不是通常的页面导航,它将包含一个Frame。我将每个页面转换为UserControl,导航服务将HostPage的Frame设置为UserControl的缓存实例。我工作得很好,但是我对BottomAppBar有问题。我无法弄清楚如何在UserControl中定义CommandBar并将其绑定到HostPage。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

一种可能的解决方案:

将其内容定义为UserControl资源中的DataTemplate(使用公共密钥)。然后在HostPage中,您可以从UserControl.Resources [YourCommonKey]获取它,并将其设置为CommandBar的内容。

使用此方法加载DataTemplate的内容:https://msdn.microsoft.com/en-us/library/system.windows.frameworktemplate.loadcontent%28v=vs.110%29.aspx

答案 1 :(得分:0)

不要使用xaml来创建Page.BottomAppBar。使用:

CommandBar bar = new CommandBar();
AppBarButton appBarButton = new AppBarButton();
BitmapIcon bi = new BitmapIcon();
bi.UriSource = item.Uri;
appBarButton.Icon = bi;
appBarButton.Label = item.Text;
appBarButton.Click += (sender, e) => item.Action();
yourPageRef.BottomAppBar = bar;
ApplicationBar.PrimaryCommands.Add(appBarButton);

然后,您可以随时随地保留参考资料。这个想法是只有一个CommandBar,你可以根据UserControl清除和添加按钮。