我正在制作应用程序,我的第一个UWP应用程序,我已经花了几个小时寻找这个。我需要命令栏保持纵向模式,同时应用程序的所有其余部分进入横向模式。我需要这样的东西:
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>
另外,另一个奇怪的事情是,当屏幕键盘被激活时,此栏随之移动以保持在屏幕键盘的顶部而不是固定位置。我该怎么做才能解决?
答案 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