【问题标题】:Re-Use Color codes in resouce.xaml在 resource.xaml 中重用颜色代码
【发布时间】:2017-05-19 08:27:51
【问题描述】:

是否可以在 xaml 中复制颜色?

我有以下几点:

<Color x:Key="Main_Color_1">Red</Color>

现在我想在更具体的颜色声明中重用这种颜色,例如:

<Color x:Key="MainView_Color_TopBar">[Red]</Color>

但我不想再次定义红色,而是想重用 Main_Color_1。 这里有一些代码,我测试过但失败了:

<Color x:Key="MainView_Color_TopBar">{StaticResource Main_Color_1}</Color>
<Color x:Key="MainView_Color_TopBar" A={Binding A, Source={StaticResource Main_Color_1}}></Color>

我知道我可以定义画笔并在那里设置颜色,但如果可能的话,我也想定义颜色。

【问题讨论】:

    标签: c# wpf xaml


    【解决方案1】:

    一种颜色应该如何“重用”另一种颜色? Color 是 Color 并且 System.Windows.Media.Color 是按值复制的值类型(结构)。它不能基于另一个 Color 对象。

    您可以在几个不同的画笔中重复使用一种颜色,仅此而已:

    <SolidColorBrush x:Key="brush" Color="{StaticResource Main_Color_1}" />
    

    【讨论】:

    • 只是希望有办法
    • 没有。至少不是在 XAML 中。您不能绑定 Color 资源的 A、B、G、R、... 属性,因为这些不是依赖属性。
    • 我发现我可以将静态资源应用于 A、B、G、R 但我需要将颜色代码分成这 4 个值,这很烦人,所以看起来像 255 现在再次用于 B、G、R,色块将是 可以编译,但是每种颜色都有 4 个 Singles 很难看,并且在重用时必须再次指定这 4 个静态资源
    • 如果你问我,这是一个非常糟糕的解决方案。那么您最好以编程方式定义 Color 资源,而不是在 XAML 标记中定义它们。
    • 完全同意你的看法
    猜你喜欢
    • 2013-05-24
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 2020-01-14
    • 1970-01-01
    • 2016-05-28
    相关资源
    最近更新 更多