Это потому, что всплывающее окно отображается в дескрипторе основного окна XAML по умолчанию.Вам нужно, чтобы он отображался в своем собственном (ContentDialog) HWND верхнего уровня.Чтобы достичь этого, вам нужно использовать свойство ShouldConstrainToRootBounds , которое появилось в 18362. Вам необходимо сделать версию проекта 18362. Тогда вы можете установить ShouldConstrainToRootBounds="False"
.
.свойство доступно только с 18362, я предлагаю использовать Условный XAML , чтобы определить, будет ли оно доступно во время выполнения, как показано ниже:
xmlns:Windows10version1903="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract, 8)"
<ContentDialog x:Name="MyDialog" Opened="MyDialog_Opened" Closed="MyDialog_Closed" PrimaryButtonText="Close" IsPrimaryButtonEnabled="True" SecondaryButtonText="Ok">
<Grid Background="White">
<Popup x:Name="MyPopup" Width="100" Height="100" Windows10version1903:ShouldConstrainToRootBounds="False">
<Border Background="White" BorderBrush="Red" BorderThickness="1" Width="100" Height="100">
<TextBlock TextWrapping="Wrap">This is a popup. Background should be white</TextBlock>
</Border>
</Popup>
</Grid>
</ContentDialog>