是否可以选择在Silverlight中为标签着色?

时间:2010-03-06 23:08:36

标签: silverlight xaml layout fonts

例如,如果我有一个标签:

Blah blah bladity blah

我想要这个标签的前10%,这样字体颜色应该是红色,其余颜色应该是绿色。

这或许意味着它会使B1和PART的颜色变亮。基本上是像素方式字体着色而不是字符方式。这有可能吗?如何实现?

2 个答案:

答案 0 :(得分: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设置为相同的值。

注意:在这个字体大小(标准,没有变化)中,“B”和“l”是红色的,只有一小段“a”。但Offset中的“0.1”表示10%,因此您可以减小字体大小或更改Offset值。

答案 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>