2010-09-14 35 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

相关问题