C# LinearGradiantBrush分别应用于下划线和文本,但不能同时应用于下划线和文本
我昨天试图回答一个问题,那个家伙试图用一种颜色给文本块中的文本上色,用另一种颜色给下划线上色,这显然是不可能的 我试着玩smarty,想应用一个C# LinearGradiantBrush分别应用于下划线和文本,但不能同时应用于下划线和文本,c#,wpf,silverlight,xaml,windows-phone-8,C#,Wpf,Silverlight,Xaml,Windows Phone 8,我昨天试图回答一个问题,那个家伙试图用一种颜色给文本块中的文本上色,用另一种颜色给下划线上色,这显然是不可能的 我试着玩smarty,想应用一个LinearGradiantBrush,这样我就可以用一种颜色和一个文本强制下划线,另一个则可以这样做: <TextBlock Margin="68,232,124,300" FontSize="35"> <Underline> <Underline.Foreground>
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中也存在这种行为 Windows Phone中的文本装饰很少受到限制-Windows Phone继承了Silverlight功能,因此 除此之外,似乎
TextBlock.Foreground
和Underline.Foreground
彼此绑定(或者是相同的属性?)。文本装饰是一个附加元素,因此画笔是单独应用的(如果我错了,请纠正我)
由于这些限制,我们无法这样做。可以在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实现中似乎不可能实现
一种可能性是使用带有内置下划线的字体
在这种情况下,渐变可能会起作用,因为下划线是单词的一部分。我不确定,但您如何确定TextEdition是一个附加元素?文本块样式甚至是空的,我猜这是一个完整的联合元素,还是我错了?@AymenDaoudi I'ce找不到相关文档。这是我的怀疑,因为下划线是TextDecorations集合中的一个对象。正如你所看到的,我没有使用TextDecorations,我使用的下划线是内联的,内联本身就有TextDecorations作为属性,所以我推断它们不一样,你明白我的意思吗?@AymenDaoudi我认为它们是一样的(虽然这是我的下一个怀疑)。可能下划线构造函数会将TextDecoration.Underline添加到TextDecorations集合。对我来说也不清楚。我明白你的意思,同意这有点奇怪。对于许多质疑,我将删除我的答案,看看其他人怎么说。不,没关系,不要删除它,让我们等着看。iw,代码截图让其他人更难测试代码,因为他们需要键入所有答案,而不是粘贴到测试应用程序中。另外,这个问题在搜索引擎中的曝光率也比较低。@WaltRitscher:我更新了我的问题