2010-09-14 41 views
7

我想在另一個LinearGradientBrush的定義中使用一個LinearGradientBrush。但我不知道這個天氣甚至會起作用,如果它有效,我需要知道如何。在另一個LinearGradientBrush中使用LinearGradientBrush?

例如:

<LinearGradientBrush x:Key="ComboBoxFocusBackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0"> 
     <GradientStop Color="#FFFDEEB3" Offset="0"/> 
     <GradientStop Color="#FFFBF2CD" Offset="1"/> 
     <GradientStop Color="#FFFCE48A" Offset="0.5"/> 
     <GradientStop Color="#FFFBE388" Offset="0.75"/> 
    </LinearGradientBrush> 

    <LinearGradientBrush x:Key="FilterPopupTitleBrush" EndPoint="0.5,1" StartPoint="0.5,0"> 
     <GradientStop Color="#B45988" Offset="0.75"/> 
     //Code here to use ComboBoxFocusBackgroundBrush 
     <GradientStop Color="#990088" Offset="0.75"/> 
    </LinearGradientBrush> 

感謝你在期待您的回答

編輯: 要得到的東西有點在這個例子更清楚,我想在「FilterPopupTitleBrush」使用「ComboBoxFocusBackgroundBrush」作爲一個「模板」。因此,我在兩個畫筆中沒有「< GradientStop ... >」的副本 - 標籤

+0

這是不是很清楚你想要做什麼...... – 2010-09-14 12:45:53

回答

9

的副本中有相同的顏色漸變您可以共享gradi多刷之間耳鼻喉科停止,就像這樣: -

<GradientStopCollection x:Key="MyGradient"> 
    <GradientStop Color="#FFFDEEB3" Offset="0"/> 
    <GradientStop Color="#FFFBF2CD" Offset="1"/> 
    <GradientStop Color="#FFFCE48A" Offset="0.5"/> 
    <GradientStop Color="#FFFBE388" Offset="0.75"/> 
</LinearGradientBrush> 

<LinearGradientBrush x:Key="ComboBoxFocusBackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0" 
    GradientStops="StaticResource MyGradient}" /> 

<LinearGradientBrush x:Key="FilterPopupTitleBrush" EndPoint="0.5,1" StartPoint="0.5,0" 
    GradientStops="{StaticResource MyGradient}" /> 

現在你可以改變EndPointStartPoint和其他屬性創建相同的基本梯度的不同變種。

你甚至可以提供相同的設置爲RadialGradientBrush

+0

這就是我所需要的,thx – Tokk 2010-09-14 13:00:10

+1

當我嘗試在Silverlight 4 ResourceDictionary中定義一個GradientStopCollection時,我得到一個「值不在預期範圍內」錯誤,爲什麼? – dain 2010-10-01 14:54:37

+0

與Silverlight相同5.首先以編程方式找到它,然後嘗試使用此XAML標記並獲得相同結果。 – xr280xr 2012-06-11 18:42:32

2

分享這樣做的另一種方式,你不需要創建一個單獨的集合,也可以重用現有的刷狀

<LinearGradientBrush x:Key="FilterPopupTitleBrush" GradientStops="{Binding GradientStops, Source={StaticResource ComboBoxFocusBackgroundBrush}}"/> 

基於現有的刷子將創建一個自定義畫筆的這種方式當您想要擴展預定義的主題(如Telerik主題)時特別有用,在這種情況下,將telerik更改爲XAML的方法不是很好。

+0

這是一個夢幻般的答案。 – 2014-07-30 15:56:27

相關問題