2011-03-30 8 views
22

पर इंगित करने के लिए कैसे करें मैंने संसाधन डिक्शनरी में सॉलिडकोलर ब्रश और लीनियर ग्रेडेंट ब्रश संसाधनों का एक भार सेट किया है। मैंने इनका उपयोग किया क्योंकि मैं अपने आवेदन में उपयोग के लिए कई नियंत्रण बहाल कर रहा था।एक संसाधन 0 (एक सॉलिडकोलर ब्रश) को किसी अन्य

अब मेरे पास अन्य बाहरी ब्रश का एक समूह है जिसे मुझे अपने ऐप पर भिन्नता के लिए उपयोग करना है। ये एक ReseourceDictionary में भी स्थापित हैं।

क्या मेरे ब्रश संसाधनों को किसी अन्य शब्दकोश में नए संसाधनों पर इंगित करना संभव है, स्टाइल के "आधारितऑन" विशेषता के समान कुछ?

कुछ इस तरह, धारणात्मक कम से कम:

<SolidColorBrush x:Key="MyDataGridHeaderBrush" Binding="HeaderBrushDefinedElsewhere"/> 

... या बात संभव नहीं इस तरह की, जिस स्थिति में मैं बस/एक मिल रहा है जाना बदलें और अपने सभी ब्रश नाम बदलने के लिए है नए ब्रश नाम के साथ?

अग्रिम धन्यवाद,

एटी

उत्तर

29

मैं साथ क्या राहेल ने कहा कि इस बात से सहमत है, लेकिन यदि आप किसी मौजूदा SolidColorBrush को उसका आधार करने के लिए है, तो आप इसके साथ क्या कर सकते हैं निम्नलिखित:

<SolidColorBrush x:Key="MyDataGridHeaderBrush" 
       Color="{Binding Source={StaticResource HeaderBrushDefinedElsewhere}, Path=Color"/> 

नोट यह सिर्फ "रंग" विशेषता के लिए काम करता है, आप आपको आवश्यक प्रत्येक विशेषता के लिए इसे अलग से करना होगा।

+0

शानदार! अब मैं वास्तव में कैस्केडिंग शुरू कर सकता हूं जैसे मैं चाहता हूं। –

+2

बिल्कुल सही, यह वही है जो मैं आपको धन्यवाद देने के लिए देख रहा हूं। मैं बता सकता हूं कि आप बंद ब्रेस खो रहे हैं ;-) – user2109254

8

आमतौर पर मैं एक ही स्थान पर एक स्थिर रंग संपत्ति करते हैं, और मेरे ब्रश कि रंग करने के लिए बाध्य।

<SolidColorBrush x:Key="LightColor" Color="#C5DBF6"/> 
<SolidColorBrush x:Key="DarkColor" Color="#FF8DB2E3"/> 

<LinearGradientBrush x:Key="FadeOutRight" EndPoint="1,1" StartPoint="0,0"> 
     <GradientStop Color="{Binding Source={StaticResource LightColor}, Path=Color}" Offset="0" /> 
     <GradientStop Color="{Binding Source={StaticResource DarkColor}, Path=Color}" Offset="1"/> 
</LinearGradientBrush> 

आप भी इस के लिए अन्य SolidBrushColors बाध्य कर सकते हैं:

<SolidColorBrush Color="{Binding Source={StaticResource LightColor}, Path=Color}" /> 

यह एक और फ़ाइल में संदर्भित है, तो इसे रेखांकित करते हैं हो सकता है, क्योंकि यह स्थिर संसाधन नहीं मिल सकता है, लेकिन क्रम में कहीं भी होगी अभी भी अपनी ब्रश परिभाषाओं को शामिल करने वाली आपकी मुख्य संसाधन फ़ाइल को संकलित करना संकलित है।

+1

क्या यह कार्यक्षमता 2011 से बदल गई है? मुझे एक त्रुटि मिल रही है "प्रकार का एक ऑब्जेक्ट System.Windows.Media.SolidColorBrush को उस प्रॉपर्टी पर लागू नहीं किया जा सकता है जो सिस्टम System.indows.Media.Color" जैसा उपर्युक्त उदाहरण के समान है (यानी ढाल बंद हो जाता है) । – Grim

+0

@Grim यदि आप XAML का उपयोग कर रहे हैं तो एक अलग प्रश्न बनाते हैं तो यह सबसे अच्छा हो सकता है। मुझे नहीं लगता कि कुछ भी बदल गया है, लेकिन मैं गलत हो सकता था। – Rachel

+0

हाँ यह दुर्भाग्यवश रंग संपत्ति को ठोस रंगरब्रश असाइन करने के लिए काम नहीं कर रहा है। कम से कम डिजाइनर शिकायत करता है और संदर्भित रंग बदलते समय रंग को अपडेट करने से इंकार कर देता है। – David

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