2009-12-02 16 views
24

परिभाषित करने के लिए एक स्टेटिक रिसोर्स सॉलिडकॉलर ब्रश का उपयोग करना मैं एप्लिकेशन के लिए सभी शैलियों के साथ कुछ डब्ल्यूपीएफ संसाधन शब्दकोश बना रहा हूं! मेरे पास कुछ LinearGradientBrush es है, जहां रंग सीधे संदर्भ में GradientStop एस के रूप में सेट किया गया है।ग्रेडियंट स्टॉप कलर्स

<SolidColorBrush Color="#5A5A5A" x:Key="colorbrushMedium" /> 
<SolidColorBrush Color="#222222" x:Key="colorbrushDark" /> 


<LinearGradientBrush> 
    <GradientStop Color="{StaticResource colorbrushMedium}"/> 
    <GradientStop Color="{StaticResource colorbrushDark}" Offset="1"/> 
</LinearGradientBrush> 

के साथ: हालांकि, मैं रंगों की एक पूर्व-निर्धारित समूह है कि मैं, प्रत्येक GradientStop के लिए आ संदर्भ का उपयोग कर सकते हैं, जिससे कि आवेदन लिए रंग योजना परिवर्तित SolidColorBrush तों के मूल्यों को बदलने की बात है करना चाहते हैं

Cannot convert the value in attribute 'Color' to object of type 'System.Windows.Media.Color'. '#5A5A5A' is not a valid value for property 'Color'. 

लाइन यह को संदर्भित करता है लाइन जहां <GradientStop Color="{StaticResource colorbrushMedium}"/> परिभाषित किया जाता है: कोड उपरोक्त उदाहरण में, मैं निम्नलिखित त्रुटि हो रही है।

कोई भी विचार?

उत्तर

29

ठीक है, मैं इस समस्या पाया:

रंग और नहीं SolidColorBrush ..

<Color x:Key="colorbrushMedium">#FF5A5A5A</Color> 
<Color x:Key="colorbrushDark">#FF222222</Color> 
<LinearGradientBrush> 
    <GradientStop Color="{StaticResource colorbrushMedium}"/> 
    <GradientStop Color="{StaticResource colorbrushDark}" Offset="1"/> 
</LinearGradientBrush> 

का उपयोग करते हुए यह मेरी समस्या का समाधान करने के लिए लगता है! SolidColorBrush में और LinearGradientBrush में दोनों रंग संदर्भ के लिए

+0

तुम भी लिखने रंग हेक्स कोड स्थिर वर्ग रंग के बजाय में परिभाषित कर सकते हैं, उदाहरण के लिए ग्रे। – Florian

+4

क्या होगा यदि आपको उन गुणों के लिए एक ही रंग का उपयोग करने की आवश्यकता है जिसके लिए SolidColorBrush की आवश्यकता है? – redtetrahedron

7

उपयोग Binding:

<SolidColorBrush x:Key="stop1" Color="#FF5A5A5A"/> 
<SolidColorBrush x:Key="stop2" Color="#FF222222"/> 

<LinearGradientBrush x:Key="gradient"> 
    <GradientStop Color="{Binding Source={StaticResource stop1},Path=Color}" Offset="0"/> 
    <GradientStop Color="{Binding Source={StaticResource stop2},Path=Color}" Offset="1"/> 
</LinearGradientBrush> 
संबंधित मुद्दे