2012-08-30 12 views
8

मैं ग्रिड की शैली के भीतर से Grid में सभी बाल तत्वों के Foreground रंग कैसे सेट करूं? मुझे पता है मैंने पहले यह किया है, लेकिन मुझे याद नहीं है कि कहां या कैसे।ग्रिड की शैली से ग्रिड में किसी भी बच्चे तत्व का अग्रभूमि रंग कैसे सेट करूं?

<Style x:Key="MyGridStyle" TargetType="{x:Type Grid}"> 
    // I want to set the font color here 
</Style> 

<Grid Style="{StaticResource MyGridStyle}"> 
    ... 
</Grid> 

मैं जानता हूँ कि मैं

<Grid.Resources> 
    <Style TargetType="{x:Type TextBlock}"> 
     <Setter Property="Foreground" Value="Red" /> 
    </Style> 
    <Style TargetType="{x:Type TextBox}"> 
     <Setter Property="Foreground" Value="Red" /> 
    </Style> 
</Grid.Resources> 

का उपयोग हालांकि मैं में नहीं Style में यह मान सेट करना चाहते हैं, कर सकते हैं Grid

उत्तर

13

यह समझ से बाहर, मैं सिर्फ डिफ़ॉल्ट शैली निर्धारित करने की आवश्यकता <Style.Resources>

<Style x:Key="MyGridStyle" TargetType="{x:Type Grid}"> 
    <Style.Resources> 
     <Style TargetType="{x:Type TextBlock}"> 
      <Setter Property="Foreground" Value="Red" /> 
     </Style> 
     <Style TargetType="{x:Type TextBox}"> 
      <Setter Property="Foreground" Value="Red" /> 
     </Style> 
    </Style.Resources> 
</Style> 
+2

यह काम करता है, लेकिन आदर्श नहीं है। – ANeves

13

में कैसे के बारे में:

<Style x:Key="MyGridStyle" TargetType="{x:Type Grid}"> 
    <Setter Property="TextElement.Foreground" Value="Red"/> 
</Style> 
+0

यह काम करता है, लेकिन केवल टेक्स्टब्लॉक के लिए। ' 'का उपयोग करके मुझे' टेक्स्टबॉक्स 'और अन्य नियंत्रण भी मिलते हैं। किसी भी तरह से इसे करने के क्लीनर तरीके के लिए +1 करें यदि आपके पैनल में केवल 'टेक्स्टब्लॉक' तत्व – Rachel

+2

@ राहेल: धोखाधड़ी है! गोलपोस्ट को स्थानांतरित कर दिया गया है ... –

+0

लॉल हां, मैं 'टेक्स्टब्लॉक' तत्वों के साथ परीक्षण कर रहा था लेकिन मेरे वास्तविक ग्रिड में 'टेक्स्टबॉक्स' भी शामिल है। जब तक आपने अपना उत्तर पोस्ट नहीं किया तब तक मैं भेदभाव नहीं करना चाहता था :) – Rachel

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