如何更改位于 ContentDialog 中的 Popup 元素的背景颜色?
How do i change background color on a Popup element located in a ContentDialog?
我不知道如何更改在 ContentDialog 中打开的 Popup 元素的背景颜色。
<ContentDialog x:Name="MyDialog" MinWidth="600" Height="300" PrimaryButtonText="Close" IsPrimaryButtonEnabled="True" PrimaryButtonClick="UnicontaOrdersDialog_OnPrimaryButtonClick" SecondaryButtonText="Ok" SecondaryButtonClick="UnicontaOrdersDialog_OnSecondaryButtonClick" Background="White" Opened="MyDialog_Opened">
<Grid Background="White">
<Popup x:Name="MyPopup" Width="100" Height="100">
<Border Background="white" BorderBrush="Red" BorderThickness="1" Height="100" Width="100">
<TextBlock TextWrapping="Wrap">This is a popup. Background should be white</TextBlock>
</Border>
</Popup>
</Grid>
</ContentDialog>
Link to image of my problem
这是因为弹出窗口默认显示在 XAML window 主句柄中。您需要使其显示在其自己的(ContentDialog)顶级 HWND 中。要实现它,你需要使用从18362引入的ShouldConstrainToRootBounds 属性。你需要让你的项目版本为18362。然后你可以设置ShouldConstrainToRootBounds="False"
。
因为这个新的 属性 是从 18362 开始才可用的,我建议你使用 Conditional 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>
我不知道如何更改在 ContentDialog 中打开的 Popup 元素的背景颜色。
<ContentDialog x:Name="MyDialog" MinWidth="600" Height="300" PrimaryButtonText="Close" IsPrimaryButtonEnabled="True" PrimaryButtonClick="UnicontaOrdersDialog_OnPrimaryButtonClick" SecondaryButtonText="Ok" SecondaryButtonClick="UnicontaOrdersDialog_OnSecondaryButtonClick" Background="White" Opened="MyDialog_Opened">
<Grid Background="White">
<Popup x:Name="MyPopup" Width="100" Height="100">
<Border Background="white" BorderBrush="Red" BorderThickness="1" Height="100" Width="100">
<TextBlock TextWrapping="Wrap">This is a popup. Background should be white</TextBlock>
</Border>
</Popup>
</Grid>
</ContentDialog>
Link to image of my problem
这是因为弹出窗口默认显示在 XAML window 主句柄中。您需要使其显示在其自己的(ContentDialog)顶级 HWND 中。要实现它,你需要使用从18362引入的ShouldConstrainToRootBounds 属性。你需要让你的项目版本为18362。然后你可以设置ShouldConstrainToRootBounds="False"
。
因为这个新的 属性 是从 18362 开始才可用的,我建议你使用 Conditional 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>