我正在为Windows-10开发通用Windows平台(UWP)。 我有关于应用程序布局颜色更改的问题。我的问题是,每当我更改我的设备(笔记本电脑/制表符/移动)主题时,我的应用程序主题颜色也会根据主题更改而受到影响。
示例:我将笔记本电脑主题更改为高对比度,当时我的Windows应用主题也受到影响,因此应用的整个布局都会发生变化。
如此善意地建议我该怎么做?
答案 0 :(得分:0)
实际上我的应用程序主题只有在用户为他/她的计算机系统选择高对比度时才会受到影响。如果我的应用程序有黑色字体颜色,那么该字体将不会显示,因为在高对比度中它们的背景是黑色。
UWP应用默认支持高对比度主题。此默认支持基于使用默认主题和模板。这些主题和模板将系统颜色引用为资源定义,当系统使用高对比度模式时,资源源会自动更改。
您可以在项目的generic.xaml文件和themeresources.xaml中找到资源。因此,一个错误解决方案是您可以将项目中的所有HighConrtrast
资源覆盖为正常资源。你可以在这样的可能路径中找到这两个文件:C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.10586.0\Generic
,其中一个HighContrast
资源是这样的:
<ResourceDictionary x:Key="HighContrast">
<!-- High Contrast theme resources -->
<!--
****************************************************
HIGH CONTRAST COMMON CONTROL COLORS
****************************************************
-->
<Color x:Key="SystemAltHighColor">#FF000000</Color>
<Color x:Key="SystemAltLowColor">#33000000</Color>
...
</ResourceDictionary>
如此善意地建议我该怎么做?
我的建议是让HighContrast
离开,当我们开发应用程序时,我们应该关注浅色盲的人。对于HighContrast
模式,不要仅仅因为您喜欢它而使用颜色。这就是为什么我说不推荐这个。
但这并不意味着您无法在HighContrast
模式下修改布局,您可以参考官方文档High-contrast themes。