回到
Windows Phone 8,我能够使用多个AppBar,在某些数据透视页上交换它们,但在Windows Phone 8.1中,我不知道如何做到这一点,或者这是否可能.
基本上对于我的场景,我有3个Pivot页面.每个页面都需要具有不同的CommandBar,因为它需要具有不同的控件.
有人能告诉我如何做到这一点吗?
编辑:
我用于Windows Phone 8的代码执行此操作:
XAML:
<phone:PhoneApplicationPage.Resources> <shell:ApplicationBar x:Key="AppBar1" IsVisible="True" IsMenuEnabled="True"> <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/> <shell:ApplicationBar.MenuItems> <shell:ApplicationBarMenuItem Text="MenuItem 1"/> </shell:ApplicationBar.MenuItems> </shell:ApplicationBar> <shell:ApplicationBar x:Key="AppBar2" IsVisible="True" IsMenuEnabled="True"> <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1" /> <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2" /> <shell:ApplicationBar.MenuItems> <shell:ApplicationBarMenuItem Text="MenuItem 1" /> <shell:ApplicationBarMenuItem Text="MenuItem 2" /> </shell:ApplicationBar.MenuItems> </shell:ApplicationBar>
C#:
private void MainPivot_SelectionChanged(object sender,SelectionChangedEventArgs e) { switch (MainPivot.Selectedindex) { case 0: ApplicationBar = this.Resources["AppBar1"] as ApplicationBar; break; case 1: ApplicationBar = this.Resources["AppBar2"] as ApplicationBar; break; } }
更改数据透视表时,基本上会切换AppBar.
解决方法
在WP8.1 RT中,你有一个属性
BottomAppBar of your Page.它与旧的ApplicationBar几乎相同(除了它的扩展) – 你可以用
CommandBar设置它.我已经在代码中创建了我的命令栏,它可以工作,你可以尝试像这样:
// prepare your CommandBars - run method somewhere in the constructor of the page: CommandBar firstBar; CommandBar secondBar; private void PrepareAppBars() { firstBar = new CommandBar(); firstBar.IsOpen = true; AppBarButton FirstBtn = new AppBarButton() { Icon = new BitmapIcon() { UriSource = new Uri("ms-appx:///Assets/first.png") } }; FirstBtn.Label = "First"; FirstBtn.Click += FirstBtn_Click; FirstBtn.IsEnabled = true; // Similar for second button AppBarButton SecondBtn = new AppBarButton() { Icon = new BitmapIcon() { UriSource = new Uri("ms-appx:///Assets/second.png") } }; firstBar.PrimaryCommands.Add(FirstBtn); firstBar.PrimaryCommands.Add(SecondBtn); // define also SecondaryCommands // simlar secondBar secondBar = new CommandBar(); secondBar.IsOpen = true; // ... } // then you can surely switch them like this: private void MainPivot_SelectionChanged(object sender,SelectionChangedEventArgs e) { switch (MainPivot.Selectedindex) { case 0: BottomAppBar = firstBar ; break; case 1: BottomAppBar = secondBar ; break; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。