2010-09-14 12 views
7

मैं एक और रैखिक ग्रेडिएंटब्रश की परिभाषा में एक रैखिक ग्रेडिएंटब्रश का उपयोग करने की कोशिश कर रहा हूं। लेकिन मुझे नहीं पता कि यह मौसम भी काम करेगा, और यदि यह काम करता है, तो मुझे यह जानने की ज़रूरत है कि कैसे।किसी अन्य 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> 

अपने जवाब के लिए प्रत्याशा में आपका शुक्रिया अदा

संपादित करें: बातें उदाहरण में थोड़ा अधिक स्पष्ट मैं "ComboBoxFocusBackgroundBrush" का उपयोग करने के लिए "FilterPopupTitleBrush" में चाहते प्राप्त करने के लिए एक "टेम्पलेट" के रूप में। इसलिए मेरे पास "< ग्रेडियंटस्टॉप ... >" की प्रतिलिपि के बिना दोनों ब्रश में समान रंग ढाल है। -टैग

+0

यह बहुत स्पष्ट नहीं है कि आप क्या करना चाहते हैं ... –

उत्तर

9

आप ग्रेडी की सूची साझा कर सकते हैं ईएनटी, कई ब्रश के बीच बंद हो जाता है इस तरह: -

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

अब आप भिन्न हो सकते हैं EndPoint, StartPoint और अन्य गुण एक ही मूल ढाल के अलग-अलग रूपों पैदा करते हैं।

आप एक ही सेट को RadialGradientBrush पर भी आपूर्ति कर सकते हैं।

+0

मुझे यही चाहिए, thx – Tokk

+1

जब मैं सिल्वरलाइट 4 रिसोर्स डिक्शनरी में ग्रेडियंटस्टॉपकोलेक्शन को परिभाषित करने की कोशिश कर रहा हूं, तो मुझे "मान अपेक्षित सीमा में नहीं आता है" त्रुटि, कोई विचार क्यों? – dain

+0

सिल्वरलाइट 5 के साथ यहां ही 5. इसे प्रोग्रामेटिक रूप से पहले मिला और फिर इस एक्सएएमएल मार्कअप के साथ प्रयास किया और उसे मिला। – xr280xr

2

ऐसा करने का एक और तरीका है साझा करना, तो आपको एक अलग संग्रह बनाने के लिए की जरूरत नहीं है, आप भी तरह

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

मौजूदा ब्रश किया जाएगा के आधार पर एक कस्टम ब्रश बनाने की इस तरह से मौजूदा ब्रश पुनः उपयोग कर सकते विशेष रूप से उपयोगी जब आप Telerik विषयों जैसे पूर्वनिर्धारित विषयों को विस्तारित करना चाहते हैं, जहां टेलरिक से XAML को बदलने के लिए यह अच्छा दृष्टिकोण नहीं होगा।

+0

यह एक शानदार जवाब है। –

संबंधित मुद्दे

 संबंधित मुद्दे