2009-06-24 20 views
30

मैं अपने XAML में तत्व है जो एक केवल पढ़ने के पाठ बॉक्स में फीका पाठ का रंग होने के लिए अग्रभूमि = "# 555" परिभाषित की एक संख्या है।मैं रंग को परिभाषित करने के लिए एक्सएएमएल में एक चर को परिभाषित और उपयोग कैसे कर सकता हूं?

<TextBlock Text="{Binding SingularModelClassFileTitle}" Margin="0 10 0 0"/> 
<TextBox Text="{Binding SingularModelClassFileName}" 
     HorizontalAlignment="Left" 
     IsReadOnly="True" 
     Foreground="#555" 
     Width="500"/> 
<TextBox 
VerticalScrollBarVisibility="Visible" 
AcceptsReturn="True"     
Width="500" 
Height="100" 
IsReadOnly="True" 
Foreground="#555" 
Text="{Binding SingularModelClassContent}" 
HorizontalAlignment="Left" 
Margin="0 0 0 20"/> 

मैं कैसे प्रत्येक इसका श्रेय में एक XAML चर और संदर्भ में यह मान डाल कर सकते हैं ताकि मैं केवल एक ही स्थान पर इसे बदलने के लिए है?

मैं सोच रहा हूँ आप इस तरह कुछ कर सकते हैं:

<sys:String x:Key="ReadOnlyTextColor">#555</sys:String> 

... 

    <TextBox Foreground="{StaticResource ReadOnlyTextColor}"/> 

और क्या इस के लिए संपत्ति xmlns:sys=... संदर्भ हो सकता है?

+3

आप अच्छे प्रश्न पूछते हैं, एडवर्ड। सीखने WPF आप नाम बार-बार ;-) –

उत्तर

36

एक SolidColorBrush के रूप में अपने रंग को परिभाषित करने का प्रयास करें:

<SolidColorBrush x:Key="ReadOnlyTextBrush" Color="#555555" /> 

...

<TextBox Foreground="{StaticResource ReadOnlyTextColor}" /> 
+0

मैट पॉप अप होता है, वहीं कारण 'Color' सीधे एक' StaticResource' क्योंकि यह एक मान प्रकार, नहीं एक संदर्भ प्रकार के रूप में इस्तेमाल किया जा नहीं कर सकता है? –

40

कभी-कभी आप ब्रश के बजाय रंग परिभाषित करने की आवश्यकता हो सकता है: (एक मामले तो आप इस चाहेगा हो रहा है रंग पैरामीटर के साथ ग्रेडियेंट को परिभाषित करने में सक्षम) उस स्थिति में आप उन्हें इस तरह परिभाषित कर सकते हैं:

<Color x:Key="ButtonColor1">Blue</Color> 
<Color x:Key="ButtonColor1">#AABBCC</Color> 
<Color x:Key="ButtonColor1" A="00" R="124" G="111" B="44"/> 
+2

दुःख की बात अंतिम विकल्प "एक पाठ '00' से 'System.Byte' बनाने में विफल।" थ्रो विंडोज फोन पर। दूसरा एक आकर्षण, चीयर्स की तरह काम किया! –

+1

और फिर रंग उपयोग '{StaticResource ब्लू} संदर्भ के लिए' –

+2

@StephenHosking, नहीं, संदर्भित करने के लिए रंग का उपयोग करें '{StaticResource ButtonColor1}' – Rocklan

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

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