我不知道这是否可能,或者如何实现它,但我想问这个问题,看看是否有人在 WPF 中做过类似的事情。
目前我们有一个主题应用程序。有浅色、深色和单色主题。每个主题都有一组定义的颜色,用于各种用途。
我们最近有消息称,我们希望使应用程序更加“可定制”,因为用户希望创建自己的主题(甚至包括他们自己的徽标品牌)
我的问题是,由于我们目前为每个主题定义了如此多的颜色,是否可以定义一个基色,然后当我们使用该颜色时,更改它(更深或更浅)以实现相同的外观和感觉?
当前颜色定义示例:
<SolidColorBrush x:Key="BlueDark25" Color="#F6F7F9" />
<SolidColorBrush x:Key="BlueDark50" Color="#ECEFF3" />
<SolidColorBrush x:Key="BlueDark100" Color="#DADEE8" />
<SolidColorBrush x:Key="BlueDark150" Color="#C7CEDC" />
<SolidColorBrush x:Key="BlueDark200" Color="#B4BED1" />
<SolidColorBrush x:Key="BlueDark250" Color="#A1ADC5" />
<SolidColorBrush x:Key="BlueDark300" Color="#8F9DB9" />
<SolidColorBrush x:Key="BlueDark350" Color="#7C8DAE" />
<SolidColorBrush x:Key="BlueDark400" Color="#697DA2" />
<SolidColorBrush x:Key="BlueDark450" Color="#576C97" />
<SolidColorBrush x:Key="BlueDark500" Color="#445C8B" />
<SolidColorBrush x:Key="BlueDark600" Color="#364A6F" />
<SolidColorBrush x:Key="BlueDark700" Color="#182031" />
<SolidColorBrush x:Key="BlueDark900" Color="#07090E" />
是否可以允许用户(或有预定义的)“BlueDark”定义(仅 1),然后根据使用情况将其变暗或变亮?那么用户可以定义 2 或 3 种主要颜色,然后应用程序为他们完成剩下的工作吗?
我很高兴我无法完全匹配此处显示的颜色,但我认为一定有某种方法可以做到这一点。
提前非常感谢。
您可以将
Opacity
的 Brush
设置为 0
和 1
之间的值。这使您可以定义不透明度为 1 的基色,然后定义作为基色的其他画笔,例如:
<SolidColorBrush x:Key="Blue" Color="Blue" />
<SolidColorBrush x:Key="LighterBlue" Color="Blue" Opacity="0.7" />
...
除了这个解决方案之外,我认为没有一种简单的方法可以仅使用 XAML 中的基色来生成整个配色方案。您也许可以通过以编程方式生成画笔来实现它。