为什么不将RichEditBox的Foreground属性设置为LinearGradientBrush做什么?

时间:2014-05-26 09:51:55

标签: c# xaml windows-runtime lineargradientbrush

我正在尝试将WinRT XAML RichEditBox的前景设置为线性渐变,以使文本在元素的顶部和底部边缘处显示为淡入淡出。我已经如下指定了LinearGradientBrush:

<LinearGradientBrush x:Key="ForegroundColor" StartPoint="0.5,0" EndPoint="0.5,1">
    <GradientStop Color="#00424242" Offset="0.0"/>
    <GradientStop Color="#FF424242" Offset="0.1"/>
    <GradientStop Color="#FF424242" Offset="0.9"/>
    <GradientStop Color="#00424242" Offset="1.0"/>
</LinearGradientBrush>

出于某种原因,这对文本没有任何作用。即使我删除不透明度并将颜色值更改为不同的原色,也不会更改文本的颜色。应正确指定渐变,因为我可以将RichEditBox的背景更改为它,并按预期显示。 documentation似乎表明这应该是可能的,但我似乎无法对前景/文本做任何事情。

我做错了什么?我怎样才能实现我想要做的事情?

1 个答案:

答案 0 :(得分:1)

RichTextBox.Document属性包含您的文字。您应该使用FlowDocument.Foreground更改文本画笔。但是如果document包含更改子元素笔刷的元素,它将覆盖默认笔刷(FlowDocument.Foreground)。对于这种情况,您可以递归地浏览整个文档,找到这些元素并将其删除或将其画笔更改为默认值。