昨天我试图回答一个问题here,那个家伙试图用文字颜色和下划线用另一种颜色为文本着色,这显然是不可能的。
我试图发挥聪明才智,想要应用LinearGradiantBrush
所以我可以强制下划线用颜色和文本与另一个做这个:
<TextBlock Margin="68,232,124,300" FontSize="35">
<Underline>
<Underline.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Red" Offset="0.764"/>
<GradientStop Color="White" Offset="0.773"/>
</LinearGradientBrush>
</Underline.Foreground>
Here s my text
</Underline>
</TextBlock>
正如你所看到的那样,GradiantBrush是单独应用的,很奇怪,但为什么呢?
我预计它会从额外的底部到额外的顶部从白色到红色渐变(包括所有作为一个对象的线条),而不是像这里显示的那样。
这是正常的吗?这应该是那样的吗?
更新:
此行为也存在于WPF中。
答案 0 :(得分:2)
Windows Phone中的TextDecorations几乎没有限制 - Windows Phone继承了Silverlight功能,因此only Underline is available.
除此之外,似乎TextBlock.Foreground
和Underline.Foreground
彼此绑定(或者是相同的属性?)。 TextDecoration是一个额外的元素,因此Brush是单独应用的(如果我错了,请纠正我)。
由于这些限制,我们无法like this。
答案 1 :(得分:1)
可以在WPF中更改下划线的颜色。
WPF XAML
<TextBlock FontSize="35" Foreground='Red'
Text='Here is my text'>
<TextBlock.TextDecorations>
<TextDecoration>
<TextDecoration.Pen>
<Pen Brush='Orange' />
</TextDecoration.Pen>
</TextDecoration>
</TextBlock.TextDecorations>
</TextBlock>
在Windows Phone和Silverlight实现中似乎不可能。
一种可能性是使用带有内置下划线的字体。
在这种情况下,渐变可能有效,因为下划线是单词的一部分。