0

我正在尝试创建一个 Pivot 控件,并且要吃 Pivot 控件的项目,我想关联一个不同的 ApplicationBar。我尝试在 MSDN 中遵循演练,但似乎此代码中存在错误:

private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        switch (((Pivot)sender).SelectedIndex)
        {
            case 0:
                ApplicationBar  = ((ApplicationBar)Application.Current.Resources["CountingAppBar"]);
                break;

            case 1:
                ApplicationBar  = ((ApplicationBar)Application.Current.Resources["SavingAppBar"]);
                break;
        }
    }

错误是 ApplicationBar 是一个类并且它被用作变量,所以我尝试在 switch 语句之前创建一个实例,这就是我所做的:

private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        ApplicationBar appBar;
        switch (((Pivot)sender).SelectedIndex)
        {
            case 0:
                appBar = ((ApplicationBar)Application.Current.Resources["CountingAppBar"]);
                break;

            case 1:
                appBar = ((ApplicationBar)Application.Current.Resources["SavingAppBar"]);
                break;
        }
    }

但这似乎不起作用。我的编程水平还是初学者,如能详细解答将不胜感激。谢谢你。

4

3 回答 3

3

这真的很简单......您可以为每个枢轴项目使用不同的应用栏。试试下面的代码

<phone:Pivot>

        <i:Interaction.Triggers>
            <appBarUtils:SelectedPivotItemChangedTrigger>
                <appBarUtils:SelectedPivotItemChangedTrigger.SelectionMappings>
                    <appBarUtils:SelectionMapping SourceIndex="0" TargetIndex="0"/>
                </appBarUtils:SelectedPivotItemChangedTrigger.SelectionMappings>

                <appBarUtils:SwitchAppBarAction>
                    <appBarUtils:AppBar Id="0"   BackgroundColor="{StaticResource AppBarBg}" ForegroundColor="{StaticResource Foreground}">
                        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.home.png" Text="home" Command="{Binding HomeNavigationCommand}"/>
                    </appBarUtils:AppBar>

                    <appBarUtils:AppBar Id="1" BackgroundColor="{StaticResource AppBarBg}" ForegroundColor="{StaticResource Foreground}">
                        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.home.png" Text="home" Command="{Binding HomeNavigationCommand}"/>
                    </appBarUtils:AppBar>

                    <appBarUtils:AppBar Id="2" BackgroundColor="{StaticResource AppBarBg}" ForegroundColor="{StaticResource Foreground}">
                        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.home.png" Text="home" Command="{Binding HomeNavigationCommand}"/>
                        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.money.png" Text="collection" Command="{Binding CollectionPageCommand}"/>
                        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.check.rest.png" Text="ok" Command="{Binding OrderConfirmationButtonCommand}"/>
                    </appBarUtils:AppBar>

                    <appBarUtils:AppBar Id="3"  BackgroundColor="{StaticResource AppBarBg}" ForegroundColor="{StaticResource Foreground}">
                        <appBarUtils:AppBarButton x:Name="ConfirmationAppBarButton" IconUri="/Assets\Images\appbar.cancel.rest.png" Text="cancel" Command="{Binding OrderCancelButtonCommand}"/>
                        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.check.rest.png" Text="ok" Command="{Binding OrderConfirmationButtonCommand}" IsEnabled="{Binding Model.EnableCheck,Mode=TwoWay}" />
                    </appBarUtils:AppBar>

                </appBarUtils:SwitchAppBarAction>
            </appBarUtils:SelectedPivotItemChangedTrigger>
        </i:Interaction.Triggers>
    </phone:Pivot>
于 2013-11-07T09:49:47.740 回答
1

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh394044%28v=vs.105%29.aspx

为什么不只使用一个 ApplicationBar 并根据选定的 Pivot 控件添加或删除 ApplicationBarButtons?考虑到许多应用程序都这样做,应该非常简单。

PS:根据个人经验,通过 C# 中的代码添加您的应用程序栏...我在更改 XAML 应用程序栏时遇到了问题。

于 2013-07-31T10:12:23.623 回答
0

嘿似乎很晚,但我遵循了相同的 msdn 教程。您可能无法获得所需的结果,因为您需要将选择更改事件与数据透视项目附加在一起。

<controls:Pivot SelectionChanged="Pivot_SelectionChanged_2" >

</controls:Pivot>
于 2013-11-02T11:03:01.467 回答