防止命令栏进入横向模式

时间:2017-01-25 11:52:31

标签: c# mobile uwp

我正在制作应用程序,我的第一个UWP应用程序,我已经花了几个小时寻找这个。我需要命令栏保持纵向模式,同时应用程序的所有其余部分进入横向模式。我需要这样的东西:

in portrait mode

And in landscape mode, see the bar didn't moved.

到目前为止,这是我的代码:

<Page.BottomAppBar>
    <CommandBar IsSticky="True" Name="cmdBar_ed">
        <CommandBar.PrimaryCommands>
            <AppBarButton Name="newBtn" Label="" Width="30" Click="newFile">
                <AppBarButton.Icon>
                    <BitmapIcon UriSource="ms-appx:///Assets/test.png"/>
                </AppBarButton.Icon>
            </AppBarButton>
            <AppBarButton Name="newBtn1" Label="" Width="30" Click="newFile">
                <AppBarButton.Icon>
                    <BitmapIcon UriSource="ms-appx:///Assets/test.png"/>
                </AppBarButton.Icon>
            </AppBarButton>
            <AppBarButton Name="newBtn2" Label="" Width="30" Click="newFile">
                <AppBarButton.Icon>
                    <BitmapIcon UriSource="ms-appx:///Assets/test.png"/>
                </AppBarButton.Icon>
            </AppBarButton>
            <AppBarButton Name="newBtn3" Label="" Width="30" Click="newFile">
                <AppBarButton.Icon>
                    <BitmapIcon UriSource="ms-appx:///Assets/test.png"/>
                </AppBarButton.Icon>
            </AppBarButton>
            <AppBarButton Name="newBtn4" Label="" Width="30" Click="newFile">
                <AppBarButton.Icon>
                    <BitmapIcon UriSource="ms-appx:///Assets/test.png"/>
                </AppBarButton.Icon>
            </AppBarButton>
            <AppBarButton Name="btnTab" Label="" Width="30" Click="insertTab">
                <AppBarButton.Icon>
                    <BitmapIcon UriSource="ms-appx:///Assets/btnIcon/Tab.png"/>
                </AppBarButton.Icon>
            </AppBarButton>
        </CommandBar.PrimaryCommands>
        <CommandBar.SecondaryCommands>
            <AppBarButton Name="btn_save" Icon="Save" Label="Save" Click="save"/>
            <AppBarButton Name="btn_saveAs" Icon="Save" Label="Save As" Click="saveAs"/>
            <AppBarButton Name="btnClose" Icon="Cancel" Label="Close File" Click="close" />
        </CommandBar.SecondaryCommands>
    </CommandBar>
</Page.BottomAppBar>

另外,另一个奇怪的事情是,当屏幕键盘被激活时,此栏随之移动以保持在屏幕键盘的顶部而不是固定位置。我该怎么做才能解决?

1 个答案:

答案 0 :(得分:1)

如果您将命令栏放在<Page.BottomAppBar/>中,它会始终根据当前ApplicationViewOrientation更改其位置,您无法控制它。

但是如果你将它放入一个面板(例如Grid):

<Page
x:Class="AppCommandBar.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:AppCommandBar"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid.RowDefinitions>
        <RowDefinition Height="9*"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition></ColumnDefinition>
        <ColumnDefinition></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <CommandBar Name="cmdBar_ed" Grid.Row="1" Grid.ColumnSpan="2">
        <CommandBar.PrimaryCommands>
            <AppBarButton Name="newBtn" Label="test" Width="30">
            </AppBarButton>
        </CommandBar.PrimaryCommands>
        <CommandBar.SecondaryCommands>
            <AppBarButton Name="btn_save" Icon="Save" Label="Save"/>
            <AppBarButton Name="btn_saveAs" Icon="Save" Label="Save As"/>
            <AppBarButton Name="btnClose" Icon="Cancel" Label="Close File"/>
        </CommandBar.SecondaryCommands>
    </CommandBar>
</Grid>

您可以按当前视图的方向手动设置其位置。有关如何检测当前视图的方向,请检查此线程How to detect orientation changes and change layout