gpt4 book ai didi

xaml - 为 ContentDialog 配置覆盖背景颜色

转载 作者:行者123 更新时间:2023-12-01 12:29:58 26 4
gpt4 key购买 nike

我正在使用深色主题为通用 Windows 平台编写一个应用程序,我注意到虽然我在使用 ContentDialog 显示模态对话框时正确地将请求的主题设置为深色> 类叠加层使整个页面变亮而不是变暗。

显示对话框之前:

Screenshot of page before overlay

显示对话框:

Screenshot of page after overlay displayed

由于 ContentDialog 上没有属性来控制叠加层,我该如何覆盖正在使用的颜色?

最佳答案

经过一些实验,我发现用于控制上面显示的 ContentDialog 的覆盖层颜色的画笔是 SystemControlPageBackgroundBaseMediumBrush,而不是看起来更像的画笔ContentDialogDimmingThemeBrush

通过检查默认主题定义,浅色和深色主题都将此画笔设置为颜色资源 SystemBaseMediumColor,浅色主题为 #99000000,而在深色主题是 #99FFFFFF。这会导致叠加层使浅色主题变暗并使深色主题变亮。

由于 SystemBaseMediumColor 是由其他画笔定义引用的,例如那些用于非事件枢轴标题的画笔定义,因此有必要覆盖 SystemControlPageBackgroundBaseMediumBrush 而不是它仅为黑暗主题引用的颜色。

为此,我们需要在 App.xaml 中的资源主题字典中或在合并到 App.xaml 中的资源 XAML 文件中重新定义画笔:

<Application>

<Application.Resources>

<ResourceDictionary>

<ResourceDictionary.ThemeDictionaries>

<ResourceDictionary x:Key="Dark">

<SolidColorBrush
x:Key="SystemControlPageBackgroundBaseMediumBrush"
Color="#99000000"
/>

</ResourceDictionary>

</ResourceDictionary.ThemeDictionaries>

</ResourceDictionary>

</Application.Resources>

</Application>

关于xaml - 为 ContentDialog 配置覆盖背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32159658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com