首页 > 代码库 > Windows Phone8.1中的CommandBar

Windows Phone8.1中的CommandBar

开篇之前:

若对Windows 8.1的相关Appbar和CommandBar控件感兴趣,强烈推荐王磊老师的博客园

链接:重新想象 Windows 8.1 Store Apps (72) - 新增控件: AppBar, CommandBar

以及不知道名字的博主对WP8.1中Appbar阐述的一篇文章:http://www.dotblogs.com.tw/eternaltung/archive/2014/05/07/wpappbar.aspx


好了,下面就Windows Phone8.1,以及看了以上两位的文章之后,列举下我的感悟:

WP8.1中只有BottomAppBar,没有TopAppBar。因为就人体体验和美感来说,将Appbar设计到手机到上方并不人性化。

CommandBar控件有几个很有用也很让人糊涂的属性

1.ClosedDisplayMode

设为Minimal则将Appbar隐藏到最小;设为Compact则将Appbar正常显示,如下图所示:

                     


2.PrimaryCommands和SecondaryCommands属性

Windows 8.1中两个属性就是字面上的意思,一前一后,从左往右排列

Windows Phone 8.1中前者还是按照从左往右排序的,而后者并不是继续排列下去,而是变成MenuItem列表的形式,如下图区别:

<span style="font-size:18px;"><Page.BottomAppBar>
        <CommandBar x:Name="commonBar" IsSticky="True" ClosedDisplayMode="Compact">
            <AppBarToggleButton Icon="Like" Label="Like"/>
            <AppBarToggleButton Icon="Dislike" Label="Dislike"/>
            <AppBarButton Icon="Library" Label="Library"/>
            <AppBarButton Icon="Stop" Label="Stop"/>
            <!--以上部分没写在CommandBar.PrimaryCommands中,但默认自动添加进其中-->
            <CommandBar.SecondaryCommands>
                <AppBarButton Icon="Like" Label="Like"/>
                <AppBarButton Icon="Dislike" Label="Dislike"/>
                <AppBarButton Icon="Library" Label="Library"/>
                <AppBarButton Icon="Stop" Label="Stop"/>
            </CommandBar.SecondaryCommands>
        </CommandBar>
    </Page.BottomAppBar></span>

3.IsSticky和IsOpen属性

这部分请参考微软MSDN上给出的解释,很详细很好

链接:AppBar Class

IsOpen属性:获取或设置指示AppBar是否可见的值

IsSticky属性:获取或设置指示 AppBar是否在光消散时不关闭的值

默认情况下,应用程序栏会在用户在应用程序栏之外的任何位置与您的应用程序交互时关闭。这称为光消散。要使命

令可见,可以通过将 IsSticky 属性设置为 true 来更改关闭

模式。当应用程序条是便笺,并且仅在用户右击、按下 Windows+Z 或从屏幕的顶边或下边重击时关闭

OnClosed方法:在 AppBar从可见更改为隐藏时调用

OnOpened方法:Invoked when the AppBar changes from hidden to visible, or is first displayed

Closed事件:在 AppBar 从可见更改为隐藏时发生

Opened事件:在 AppBar 从隐藏更改为可见时发生

Windows Phone8.1中的CommandBar