C# LinearGradiantBrush分别应用于下划线和文本,但不能同时应用于下划线和文本

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>

我昨天试图回答一个问题,那个家伙试图用一种颜色给文本块中的文本上色,用另一种颜色给下划线上色,这显然是不可能的

我试着玩smarty,想应用一个
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:我更新了我的问题