例如,如果我有一个标签:
Blah blah bladity blah
我想要这个标签的前10%,这样字体颜色应该是红色,其余颜色应该是绿色。
这或许意味着它会使B1和PART的颜色变亮。基本上是像素方式字体着色而不是字符方式。这有可能吗?如何实现?
答案 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>