2010-09-14 15 views
7

Başka bir LinearGradientBrush tanımında bir LinearGradientBrush kullanmaya çalışıyorum. Ama bunun bir işe yaramayacağı bir fikrim bile yok, ve eğer işe yararsa, nasıl olduğunu bilmem gerek. Örnek içinBaşka bir LinearGradientBrush'ta bir LinearGradientBrush kullanın?

:

<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> 

cevaplar için beklentisiyle teşekkür

Düzenleme: Ben "FilterPopupTitleBrush" nde "ComboBoxFocusBackgroundBrush" kullanmak istiyorum örnekte biraz daha net şeyler almak için Bir "şablon" olarak. "Ben her iki fırça aynı renk gradyanı" < GradientStop ... > "-tags

+0

Ne yapmak istediğinizi net değil ... –

cevap

9

ile aynı gradyanın aynısını benimle paylaşabilirsiniz. ent böyle, birden fırçalar arasında durur: -

<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}" /> 

Şimdi EndPoint, StartPoint ve diğer özellikler aynı temel gradyan farklı türevlerini oluşturmak değişebilir.

Aynı seti RadialGradientBrush numaralı hatta sağlayabilirsiniz.

+0

ihtiyacım olan bu, thx – Tokk

+1

Bir Silverlight 4 ResourceDictionary içinde bir GradientStopCollection tanımlamaya çalıştığımda "Değer beklenen aralıkta düşmez" hata, neden herhangi bir fikir? – dain

+0

Silverlight 5 ile de aynıdır. Önce programlı olarak bulundu ve daha sonra bu XAML biçimlendirmesi ile çalıştı ve aynı oldu. – xr280xr

2

Bunu yapmanın başka bir yolunu Paylaşım, ayrı bir koleksiyon oluşturmak gerekmez, ayrıca

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

fırça mevcut olacaktır dayalı bir özel fırça oluşturma Bu şekilde gibi varolan fırça yeniden kullanabilirsiniz Öncelikle Telerik temaları gibi önceden tanımlanmış temaları genişletmek istediğinizde, XAML telerik'i değiştirmek için iyi bir yaklaşım olmaz.

+0

Bu harika bir cevap. –

İlgili konular