c# – 多个AppBar / CommandBar
发布时间:2020-12-15 20:52:00 所属栏目:百科 来源:网络整理
导读:回到 Windows Phone 8,我能够使用多个AppBar,在某些数据透视页上交换它们,但在Windows Phone 8.1中,我不知道如何做到这一点,或者这是否可能. 基本上对于我的场景,我有3个Pivot页面.每个页面都需要具有不同的CommandBar,因为它需要具有不同的控件. 有人能告诉
回到
Windows Phone 8,我能够使用多个AppBar,在某些数据透视页上交换它们,但在Windows Phone 8.1中,我不知道如何做到这一点,或者这是否可能.
基本上对于我的场景,我有3个Pivot页面.每个页面都需要具有不同的CommandBar,因为它需要具有不同的控件. 有人能告诉我如何做到这一点吗? 编辑: 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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读