更改XAML颜色相对于其他XAML颜色的值?

时间:2012-03-26 17:49:44

标签: wpf xaml styles

我有两个XAML颜色如下。

<Color x:Key="DefaultColor">SteelBlue</Color>
<Color x:Key="LightDefaultColor">LightSteelBlue</Color>

我想仅使用XAML更改LightDefaultColor的颜色相对于默认颜色。

就像我给SteelBlue一样,我应该自动为LightDefaultColor采用比SteelBlue更浅的颜色。

我不想使用C#代码..

Note:实际上不是SteelBlue的LightSteelBlue,但它应该比SteelBlue更轻。

2 个答案:

答案 0 :(得分:1)

无法在纯XAML中完成。您可以在代码中创建ValueConverter,然后在XAML中应用。

或者,如果你真的真的想要100%XAML,你可以得到的最好的结果就是将第2层元素叠加在一起。一个基色在70%不透明度的元素顶部,纯白色,100%不透明度。

答案 1 :(得分:0)

你可以创建一个markup extension,它使用StaticResource的默认颜色来返回它的浅色调。 (关于仅限XAML:所有XAML都依赖于代码隐藏,无论是由您编写,还是开发框架的人都不重要)