Я пытаюсь показать полноэкранное всплывающее окно вместе с панелью приложений. Для этого я использую такой код:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Button Name="myButton" Content="Show PopUP" Click="myButton_Click"/>
<Popup x:Name="myPopup">
<Grid Name="PopupsGrid" Background="ForestGreen">
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="This is my PopUp"/>
</Grid>
</Popup>
</Grid>
<Page.BottomAppBar>
<CommandBar>
<AppBarButton Label="Done" Icon="Setting"/>
<CommandBar.SecondaryCommands>
<AppBarButton Label="Command"/>
</CommandBar.SecondaryCommands>
</CommandBar>
</Page.BottomAppBar>
private void myButton_Click(object sender, RoutedEventArgs e)
{
var bounds = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().VisibleBounds;
PopupsGrid.Height = bounds.Height - 25; // to show the problem - normally we can substract BottomAppBar.Height
PopupsGrid.Width = bounds.Width;
myPopup.IsOpen = true;
}
Я понял, что мы можем использовать ApplicationView.GetForCurrentView().VisibleBounds для вычисления желаемой высоты. Пока все хорошо, но когда я открываю всплывающее окно, оно перекрывает панель приложения (см. рисунок 2). С другой стороны, когда мы открываем панель приложений, кажется, что она частично перекрывается (см. рисунок 3).
Я тестировал его как на настольном компьютере, так и на мобильном устройстве, и возникает одна и та же проблема.
Я что-то упускаю? Как разместить панель приложения над всплывающим окном?