我正在开发一个WP8.1 XAML应用程序,但我遇到了应用程序栏的问题。
我在应用程序中显示了一些Flyout,代码类似于:
Flyout flyout = new Flyout();
flyout.Content = new SomeStuffUserControl();
flyout.Placement = FlyoutPlacementMode.Full;
flyout.Opened += (s, e) =>
{
commandBar.Visibility = Visibility.Collapsed;
};
flyout.Closed += (s, e) =>
{
commandBar.Visibility = Visibility.Visible;
}
flyout.ShowAt(Window.Current.Content as FrameworkElement);
我崩溃了CommandBar,因为我不希望它在显示Flyout时浪费空间。 问题在于,有时当Flyout关闭时,我可以看到整个页面布局被移动的时间只有几分钟。在页面底部(为了覆盖空白区域是CommandBar),如果CommandBar重新出现后立即重新启动,这看起来很丑:/
如果我没错,在WP8.0中我可以将AppBar不透明度设置为0.9(例如),然后页面布局不会将其视为"占用空间&#34 ;但是会覆盖AppBar后面的整个页面。这样,如果我折叠AppBar可见性,页面布局就不会改变。
在WP8.1中有没有办法做到这一点?
谢谢! :)
塞尔吉奥
编辑: 我找到了一个解决方案,并补充说,以防万一其他人会发现它有用:)
再次感谢您的帮助!
答案 0 :(得分:0)
好的,我找到了问题的解决方案:)
这是我的主页XAML的一部分:
<!--LayoutRoot-->
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition x:Name="mainRow" Height="*"/>
</Grid.RowDefinitions>
<!--Page content and stuff-->
</Grid>
我添加了行定义并在我的页面构造函数中使用了它:
public Mypage()
{
this.Loaded += (s, e) =>
{
mainRow.MaxHeight = mainRow.ActualHeight;
mainRow.Height = new GridLength(mainRow.ActualHeight, GridUnitType.Pixel);
};
this.InitializeComponent();
//Stuff
}
现在,当我将BottomAppBar可见性设置为Collapsed时,页面布局不会移位,而无需将任何垂直对齐设置为顶部(因为我有一些使用底部对齐的东西)。