Windows 8应用程序上的全局应用程序栏

我正在开发一个Windows 8应用程序项目。 我正在使用Visual Studio 2012及其预定义模板(GroupedPage,SplitPage,ItemsPage)。
这时我需要添加一个App栏。 我选择的方法是创建一个并在所有页面上显示它。 我读这篇文章: http : //msdn.microsoft.com/en-us/library/windows/apps/xaml/jj150604.aspx

要在我的项目中包含它,我将全局页面设置为App.xaml上的起始页面

protected async override void OnLaunched(LaunchActivatedEventArgs args) ... if (!rootFrame.Navigate(typeof(GlobalPage), args.Arguments)) throw new Exception("Failed to create initial page"); ... 

在Global页面上,我正在更改OnLaunched方法,以便进入真正的主页面:

  rootPage = e.Parameter as Page; frame1.Navigate(typeof(MainPage), this); 

我为按钮添加了事件订阅,比如

  private void ButtonBlogList_Click(object sender, RoutedEventArgs e) { this.Frame.Navigate(typeof(BlogListManagement), this); } 

启动应用程序后,将显示应用程序栏,我可以使用内部的应用程序按钮进行导航,但在第一次导航后,AppBar不会显示在目标页面上。

知道我的错误吗?
谢谢你的帮助。

你想要做的是在LayoutAwarePage上设置AppBar,因为所有页面都来自该页面。 对于AppBar的内容,您可能希望使用UserControl,以便于编码和样式化。

首先创建UserControl:

       

然后在LayoutAwarePage的构造函数中,您要创建AppBar,将内容设置为UserControl,并将其添加到页面上的Buttom或TopAppBar – 在此示例中,我使用BottomAppBar并在consturctor中设置everthing,就像这样:

  public LayoutAwarePage() { bar = new AppBar(); bar.Content = new AppbarContent(); this.BottomAppBar = bar; //and the remaining code for the constructor hereafter. 

这应该允许您在从WindowsAwarePage派生的所有页面上的Windowsapp store应用程序中拥有全局应用栏。

Interesting Posts