WPF根据绑定值应用颜色主题

时间:2010-12-17 05:12:16

标签: wpf silverlight binding styles

我有一个相当详细的用户控件由几个部分组成,这些部分有一个特定的蓝色主题应用于它们,但我想交换所有的网格/边框/矩形/等...颜色是基于DataContext中绑定的相同主题的绿色版本。

显然我可以为元素的每个Fill / Background属性使用转换器,但这看起来很烦人。

在我的转换器(或XAML)中,我可以以某种方式将Style应用于我的用户控件,它只会设置我的元素的Fill / Background / etc ...属性,基本上应用颜色主题吗? / p>

1 个答案:

答案 0 :(得分:1)

您可以将其设置为样式,使所有矩形都具有特定颜色。

在资源词典中我有:

<LinearGradientBrush x:Key="Windowsbackground" EndPoint="0.5,1" StartPoint="0.5,0">
    <GradientStop Color="Black" Offset="0.259"/>
    <GradientStop Color="#FF7691CD" Offset="1"/>
</LinearGradientBrush>

然后在我的用户控件中:

<UserControl x:Class="Test.Views.TestView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    MinHeight="300" MinWidth="300" Background="{DynamicResource Windowsbackground}">