我需要一个特殊的下划线样式用于富文本框。线条/下划线可以具有与其上方文本不同的颜色。该线也应该具有我在其他任何地方都没见过的形状。
是否可以通过利用某些功能来实现这一点,理想情况下是从富文本控件继承?
我不确定如何相对容易地完成这项任务,因此非常感谢任何提示。我能想到的唯一方法是从头开始实现它。例如,使用Graphics.DrawString等。这将是非常多的工作。
我还检查了第三方控件,如DevExpress,Telerik,Infragistics,ComponentOne等。但他们似乎都没有支持这一点。
答案 0 :(得分:1)
WPF RichTextBox
control用于编辑FlowDocument
个实例,其内容使用System.Windows.Documents
namespace中的类型定义。
每个Inline
都有一个TextDecorations
property。它是添加到内联文本中的其他装饰列表(通常以线的形式)。它们中的每一个都是TextDecoration
class的实例。
每个TextDecoration
获取its individual Pen
,因此颜色与文本颜色无关。以下示例创建一个包含绿色字母,紫色下划线和橙色上划线的文本:
<Run Foreground="Green" Text="Hello, World!" FontSize="36">
<Run.TextDecorations>
<TextDecoration Location="Underline">
<TextDecoration.Pen>
<Pen Brush="Purple"/>
</TextDecoration.Pen>
</TextDecoration>
<TextDecoration Location="OverLine">
<TextDecoration.Pen>
<Pen Brush="Orange"/>
</TextDecoration.Pen>
</TextDecoration>
</Run.TextDecorations>
</Run>
一旦你在那里,你可以提供一个不完全填充该区域的画笔,而是绘制形状,例如VisualBrush
,以创建你想要的任何图案。