2010-12-17 90 views
0

我有一個相當詳細的用戶控件,它由幾個部分組成,這些部分有一個特定的藍色主題應用到他們,但我想交換所有的Grids/Borders/Rectangles/etc ...顏色是基於DataContext中綁定的相同主題的綠色版本。WPF應用基於綁定值的顏色主題

很明顯,我可以使用轉換器爲元素的每個填充/背景屬性,但這似乎很煩人。

在我的轉換器(或XAML)中,我可以將Style以某種方式應用於我的用戶控件,它將設置我的元素的填充/背景/等...屬性,實質上應用顏色主題?

回答

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}"> 
+0

所以我不得不不同樣式應用到所有需要這些顏色和漸變的不同元素?我假設如此,只是想檢查 – Mark 2010-12-19 08:26:02

+0

您可以添加自己的顏色和漸變顏色,然後再使用每個控件,以便將來更容易更改顏色或漸變。 – 2010-12-20 05:55:48

+0

但是,您仍然需要明確地覆蓋所使用的每個「常規」控件的默認值,或者您必須製作自己的樣式,如上所述。我推薦上面的方法! – 2010-12-20 05:57:03