У меня есть всплывающее окно, которое будет заполнять всю страницу при открытии.
<Grid x:Name="gridRoot" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Button Content="Open" HorizontalAlignment="Center" Click="{x:Bind viewModel.OpenPopup}" />
<Popup x:Name="popupCorrect" VerticalAlignment="Top" IsOpen="{Binding IsOpen}" IsLightDismissEnabled="False">
<Popup.ChildTransitions>
<TransitionCollection>
<PaneThemeTransition Edge="Left" />
</TransitionCollection>
</Popup.ChildTransitions>
<uc:MyPopup Width="{Binding ElementName=gridRoot, Path=ActualWidth}" Height="{Binding ElementName=gridRoot, Path=ActualHeight}"/>
</Popup>
</Grid>
Всплывающее окно - это пользовательский элемент управления
<Grid Background="Red">
<Button Content="Close" HorizontalAlignment="Center" Click="{x:Bind viewModel.ClosePopup}" />
</Grid>
- Страница
- Когда отображается всплывающее окно
- Закройте всплывающее окно, измените размер страницы, затем снова откройте всплывающее окно. Обратите внимание, что он не соответствует новому размеру страницы контейнера, хотя его
Width
иHeight
привязаны кgridRoot
. Нужно ли вручную устанавливать новыеWidth
иHeight
для всплывающего окна? Почему я не могу добиться этого с помощью привязки? Эта проблема также появляется на мобильных устройствах во время «OrientationChanged».
ActualWidth
в качестве источника привязки обычно не работает должным образом. См. это для получения дополнительной информации. - person Decade Moon   schedule 19.03.2017Flyout
и установить свойствоPlacementMode=Full
? - person Lindsay   schedule 21.03.2017