位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# CommandBar 控件

提问人:刘团圆发布时间:2020-12-11

    CommandBar为用户提供的功能与桌面应用程序的工具栏基本相同,但应该让它们简单得多,通常限制工具栏上可用的选项少于8项。

    —次可以显示多个CommandBar,但请记住,这会使用户界面很杂乱,不应该只为显示更多选项而显示多个工具栏。另一方面,如果想提供多种导航,有时同时把工具栏显示在顶部和底部会比较好。

    Visual Studio附带了 CommandBar控件,很容易创建这种类型的控件。下面的示例创建一个应用程序的工具栏,其中包含许多标准项。


试一试  创建 CommandBar: Ch25Ex05

(1)回到先前的Bas icNavigation示例。

(2)在三个页面上都添加一个CommandBar。把它作为每个页面上Grid控件的子元素:

    <CommandBar>

      <AppBarToggleButton x:Name="toggleButtonBold" Icon ="Bold" Label="Bold" Click=

"AppBarToggleButtonBold_Click"/>

      <AppBarSeparator />

      <AppBarButton Icon="Back" Label="Back" Click="buttonGoBack_Click"/>

      <AppBarButton Icon="Forward" Label="Forward" Click=

"AppBarButtonForward_Click"/>

      <CominandBar. SecondaryCommands>

        <AppBarButton Icon=HCamera" Label="Take picture" />

        <AppBarButton Icon="Help" Label="Help" />

      </CommandBar,SecondaryCommands>

    </CommandBar>

(3)把下面的事件处理程序添加到所有三个页面上:

    private void AppBarButtonForwardClick(object sender, RoutedEventArgs e)

    {

      if (Frame.CanGoForward) this.Frame.GoForward();

    }

    private void AppBarToggleButtonBold_Click(object sender, RoutedEventArgs e)

    {

      AppBarToggleButton toggleButton = sender as AppBarToggleButton; 

      bool isChecked = toggleButton.IsChecked.HasValue ?

                (bool)toggleButton?.IsChecked.Value : false; 

      textBlockCaption.FontWeight = isChecked ? FontWeights.Bold :

FontWeights.Normal;

    }

(4)把下面的using语句添加到所有页面上:

    using Windows.UI.Text;

(5)在所有三个页面上,把文本框的margin改为丨0,50,10,10。

(6)运行该应用程序。


示例说明

  运行这个应用程序时,现在可以使用命令栏按钮在曾经访问过的页面列表中来回移动。命令栏本身很容易处理。

  命令栏用三种类型来建立。第一个是AppBarToggleButton。

      <AppBarToggleButton x:Name="toggleButtonBold" Icon="Bold" Label= "Bold" Click= 

      "AppBarToggleButtonBold_Click" />

  这种类型的按钮可用来显示开启或关闭的状态。

  第二种类型是AppBarButton,与任何其他按钮类似,事实上可以看到,AppBarButtonBack按钮的单击事件是由前面示例中ButtonBack的同一个事件处理程序处理的。

    <AppBarButton Icon="Back" Label="Back" Click="buttonGoBack_Click"/>

用于命令栏的第三中类型是AppBarSeperator。这种控件只显示命令栏中的分隔线。

最后,两个按钮位于CommandBar.SecondaryCommands标签内:

    <CommandBar. SecondaryCominands>

      <AppBarButton Icon="Camera" Label="Take picture" />

      <AppBarButton Icon="Help" Label="Help" />

    </CommandBar.SecondaryCommands>

  </CommandBar>

这些命令不直接显示在命令栏上,相反,在单击显示的三个点时,它们显示为下拉框。

继续查找其他问题的答案?

相关视频回答
回复(0)

特邀嘉宾

软件开发工程师——刘团圆

软件开发专业科班出身,擅长软件开发课程培训。

向TA咨询

该嘉宾的QQ群

更多>>
返回顶部