2009-03-02 15 views
10

मैं अपने नियंत्रण के लिए XAML शैली पर काम कर रहा हूं। नीचे दिया गया कोड स्टैकपैनल का रंग सेट करने के लिए है। यह ठीक काम करता है लेकिन मैं कुछ और करना चाहता हूं। अगर ट्रिगर सक्रिय होता है तो मैं स्टैकपैनल के अंदर सभी बच्चों के लिए फ़ॉन्ट रंग सेट करना चाहता हूं।डब्ल्यूपीएफ/एक्सएएमएल स्टाइल सेट बच्चों के सामान के लिए संपत्ति?

फिलहाल मेरे पास स्टैकपैन के अंदर टेक्स्टब्लॉक हैं और मुझे पता है कि मैं आसानी से टेक्स्टबॉक के लिए एक अलग शैली बना सकता हूं। लेकिन अगर यह शैली ट्रिगर हो जाती है तो यह केवल एक को प्रभावित करेगी और सभी टेक्स्टब्लॉक नहीं। लेकिन जैसे ही मुझे पैनल के लिए माउसओवर ट्रिगर मिला, मैं स्टैकपैनल के अंदर सभी वस्तुओं को बदलना चाहता हूं।

क्या यह XAML में भी संभव है या क्या मुझे नियमित ईवेंट कोड करना है?

<Style x:Key="XStack" TargetType="StackPanel"> 
    <Setter Property="Background"> 
     <Setter.Value> 
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
       <GradientStop Color="White" Offset="0"/> 
       <GradientStop Color="SkyBlue" Offset="6"/>      
      </LinearGradientBrush> 
     </Setter.Value> 
    </Setter> 
    <!-- Trigger--> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True" > 
      <Setter Property="Background" Value="SkyBlue"/> 
     </Trigger> 
    </Style.Triggers> 
</Style>  
+0

धन्यवाद! एक सपने की तरह काम करता है! – TalkingCode

उत्तर

14

अपने ट्रिगर करने के लिए इस जोड़ें:

<Setter Property="TextElement.Foreground" Value="Blue"></Setter>

3

तरह Olle कहा, आप एक कस्टम मूल्य से जुड़ी संपत्ति TextElement.Foreground सेट कर सकते हैं। दृश्य पेड़ में एक बाल नियंत्रण/यूआई नोड के लिए, यदि संपत्ति सेट नहीं है, तो डब्ल्यूपीएफ यूआई पदानुक्रम तक चलेगा जब तक कि इसे कोई मूल्य न मिले और इसका उपयोग न करें। इसका मतलब है कि सभी बाल नियंत्रण माता-पिता स्तर पर परिभाषित संपत्ति मूल्य साझा कर सकते हैं।

यह सभी टेक्स्टब्लॉक्स के लिए काम करना चाहिए ... हालांकि यदि आपके स्टैकपैनल में टेक्स्टबॉक्स शामिल है, तो इसका टेक्स्ट रंग प्रभावित नहीं होगा। यह नियंत्रण बेस क्लास से अग्रभूमि संपत्ति का उपयोग करता है ... इसलिए सभी संभावित बाल तत्व प्रकारों के साथ इसका परीक्षण करना सुनिश्चित करें।

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