【问题标题】:Changing Value of XAML Color with respect to other XAML Color?相对于其他 XAML 颜色更改 XAML 颜色的值?
【发布时间】:2012-03-26 17:49:44
【问题描述】:

我有两种 XAML 颜色,如下所示。

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

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

如果我给 SteelBlue,我应该自动为 LightDefaultColor 采用比 SteelBlue 更浅的颜色。

我不想使用 C# 代码..

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

【问题讨论】:

  • 那么转换器是不可能的吗?

标签: wpf xaml styles


【解决方案1】:

不能在纯 XAML 中完成。您可以在代码中创建一个 ValueConverter,然后将其应用于 XAML。

或者,如果你真的真的很想要 100% XAML,你能得到的最好的方法就是将第 2 层元素相互叠加。一种以 70% 不透明度的基本颜色和 100% 不透明度的纯白色元素顶部。

【讨论】:

    【解决方案2】:

    您可以创建一个markup extension,它通过StaticResource 使用默认颜色来返回较浅的阴影。 (关于仅 XAML:所有 XAML 都依赖于代码隐藏,无论是您编写的还是开发框架的人都应该无关紧要)

    【讨论】:

      猜你喜欢
      • 2018-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多