2010-03-06 10 views
5

उदाहरण के लिए, अगर मैं कोई लेबल:क्या सिल्वरलाइट में लेबल को रंगना संभव है?

Blah blah bladity blah

मैं चाहता हूँ इस लेबल के पहले 10%, जैसे कि फ़ॉन्ट रंग लाल होना चाहिए, और बाकी हरा होना चाहिए।

इसका शायद मतलब है कि यह ए के ब्लू और भाग को रंग देगा। चरित्र के अनुसार मूल रूप से पिक्सेल-वार फ़ॉन्ट रंग। क्या यह संभव है और कैसे पूरा किया जाएगा?

उत्तर

5

हाँ, इसे इस तरह होगा:

<Canvas> 
    <dataInput:Label Background="White" > 
    <dataInput:Label.Foreground> 
     <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"> 
      <GradientStop Color="Red" Offset="0.1"/> 
      <GradientStop Color="Green" Offset="0.1"/> 
     </LinearGradientBrush> 
    </dataInput:Label.Foreground> 
    Blah blah bladity blah 
    </dataInput:Label> 
</Canvas> 

आदेश में के लिए नहीं ग्रेडिएंट प्रभाव है, तो आप एक ही मूल्य के लिए दोनों Offset सेट करना होगा।

नोट: इस फ़ॉन्ट आकार (मानक, कुछ भी नहीं बदला गया) में "बी" और "एल" लाल हैं और केवल "ए" का एक छोटा सा स्लाइवर है। लेकिन Offset में "0.1" का अर्थ 10% है, इसलिए आप या तो फ़ॉन्ट आकार घटा सकते हैं या Offset मान बदल सकते हैं।

+0

ऐसा लगता है कि हम दोनों एक ही समाधान के साथ आए! –

+0

+1 डेटा इनपुट का अच्छा उपयोग: लेबल नियंत्रण। –

3

हां - आपको पाठ के अग्रभूमि रंग के साथ ग्रेडियेंट ब्रश का उपयोग करना चाहिए।

<TextBlock Text="Blah blah bladity blah"> 
    <TextBlock.Foreground> 
     <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5"> 
     <GradientStop Color="Red" Offset="0.1"/> 
     <GradientStop Color="Green" Offset="0.1"/> 
     </LinearGradientBrush> 
    </TextBlock.Foreground> 
</TextBlock> 
संबंधित मुद्दे