Windows 8 应用开发 - 应用栏
通过应用栏(AppBar)可以在需要时向用户显示各种应用命令。应用栏提供与用户当前页面或当前选定的内容相关的各种命令。默认情况下,应用栏处于隐藏状态。当用户沿屏幕边缘从顶部或底部用手指划动时会显示应用栏,还可以通过单击鼠标右键显示。在用户启动命令、点击应用界面或重复划动手势后,应用栏会自动消失。如果需要进行多选命令操作时,也可以以让应用栏始终可见。
新建应用栏
以下边栏(BottomAppBar)为例,利用AppBar 控件编写一个具有文本编辑功能的应用栏。
<Page.BottomAppBar> <AppBar x:Name="BottomAppBar"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="50*"/> <ColumnDefinition Width="50*"/> </Grid.ColumnDefinitions> <StackPanel x:Name="LeftPanel" Orientation="Horizontal" Grid.Column="0" HorizontalAlignment="Left"> <Button x:Name="Edit" Style="{StaticResource EditAppBarButtonStyle}" Click="Edit_Button_Click"/> <Button x:Name="Save" Style="{StaticResource SaveAppBarButtonStyle}"/> <Button x:Name="Delete" Style="{StaticResource DeleteAppBarButtonStyle}"/> </StackPanel> <StackPanel x:Name="RightPanel" Orientation="Horizontal" Grid.Column="1" HorizontalAlignment="Right"> <Button x:Name="Refresh" Style="{StaticResource RefreshAppBarButtonStyle}"/> </StackPanel> </Grid> </AppBar> </Page.BottomAppBar>
从上面代码可以看出编写应用栏本身并没有什么复杂之处,而且应用栏中使用按键的风格在Win8 应用中也都提供了。在项目工程Common 文件夹中找到StandardStyles.xaml 里面有很多注释掉的ButtonStyle,在里面找到你需要的提出来即可。
编辑应用栏
接下来,我们在应用界面中添加两个CheckBox:一个用来将应用栏固定,另一个用来新增或删除应用栏按键。
<StackPanel Orientation="Vertical" Grid.Row="1" Margin="120,50,0,0"> <CheckBox x:Name="IsSticky" Content="IsSticky" Click="IsSticky_Click" /> <CheckBox x:Name="AddHelpButton" Content="Add Help Button" Click="AddHelpButton_Click" /> </StackPanel>
两个CheckBox 点击事件代码如下,当应用栏IsSticky 属性激活后,只能通过划动下边屏幕或鼠标右键将取消显示。
private void IsSticky_Click(object sender, RoutedEventArgs e) { CheckBox cb = sender as CheckBox; AppBar ap = pageRoot.FindName("BottomAppBar") as AppBar; if (ap != null) { ap.IsSticky = (bool)cb.IsChecked; } } private void AddHelpButton_Click(object sender, RoutedEventArgs e) { CheckBox cb = sender as CheckBox; if ((bool)cb.IsChecked) { Button helpButton = new Button(); helpButton.Name = "Help"; helpButton.Style = App.Current.Resources["HelpAppBarButtonStyle"] as Style; RightPanel.Children.Add(helpButton); } else { RightPanel.Children.RemoveAt(1); } }
源码下载
作者:李敬然(Gnie)
出处:{GnieTech} (http://www.cnblogs.com/gnielee/)
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
出处:{GnieTech} (http://www.cnblogs.com/gnielee/)
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?