将不同的CommandBars添加到Hub Element

时间:2014-05-14 18:07:51

标签: xaml windows-phone-8 windows-phone-8.1 commandbar

如何在Windows Phone 8.1应用中向Hub元素添加不同的CommandBars(AppBars)。我希望每个Hub部分都有一个不同的CommandBar,但我不能在Hub部分声明CommandBar。所以我只能在Hub中使用一个CommandBar。

1 个答案:

答案 0 :(得分:1)

您可以创建4个以上的AppBarButton并使其不可见,然后为每个Hub Section更改Visibility属性。菜单按钮的方式相同。

样品:

<Page.BottomAppBar>
    <CommandBar>
        <CommandBar.PrimaryCommands>
            <AppBarButton x:Uid="Quick" Name="QuickAppBarButton" Label="quick" Icon="Pin" Click="AppBarButton_Click"/>
            <AppBarButton x:Uid="Quick" Name="AddAppBarButton" Label="add" Icon="Add" Click="AppBarButton_Click"/>
            <AppBarButton x:Uid="Quick"
                          Name="CalcAppBarButton"
                          Label="calculator"
                          Icon="Calculator"
                          Click="AppBarButton_Click" />
        </CommandBar.PrimaryCommands>
        <CommandBar.SecondaryCommands>
            <AppBarButton x:Uid="Accounts" Name="AccountsSecondaryButton" Label="accounts" Click="AccountsSecondaryButton_Click"/>
            <AppBarButton x:Uid="CurrencyMenu" Name="CurrencySecondaryButton" Label="currency" Click="CurrencySecondaryButton_Click"/>
            <AppBarButton x:Uid="Categories" Label="categories"/>
            <AppBarButton x:Uid="Settings" Label="settings" Name="SettingsSecondaryButton" Click="SettingsSecondaryButton_Click"/>
            <AppBarButton x:Uid="Tutorials" Label="tutorials"/>
            <AppBarButton x:Uid="About" Label="about"/>
        </CommandBar.SecondaryCommands>
    </CommandBar>
</Page.BottomAppBar>

和C#文件(你必须为每个部分设置名称):

private void CoinsHub_SectionsInViewChanged(object sender, SectionsInViewChangedEventArgs e)
{
    if(CoinsHub.SectionsInView[0] == TransactionsHubSection)
    {
        QuickAppBarButton.Visibility = Visibility.Collapsed;
        AddAppBarButton.Visibility = Visibility.Visible;
        CalcAppBarButton.Visibility = Visibility.Collapsed;
    }
    else if (CoinsHub.SectionsInView[0] == OverviewHubSection)
    {
        QuickAppBarButton.Visibility = Visibility.Visible;
        AddAppBarButton.Visibility = Visibility.Collapsed;
        CalcAppBarButton.Visibility = Visibility.Collapsed;
    }
    else
    {
        QuickAppBarButton.Visibility = Visibility.Collapsed;
        AddAppBarButton.Visibility = Visibility.Visible;
        CalcAppBarButton.Visibility = Visibility.Visible;
    }
}