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