实现非典型下划线样式
本文关键字:样式 下划线 非典型 实现 | 更新日期: 2023-09-27 18:21:04
我需要一个用于富文本框的特殊下划线样式。线条/下划线的颜色可以与上面的文字不同。线条的形状也应该是我在其他地方从未见过的。
是否可以通过利用一些功能来实现这一点,最好是从富文本控件继承?
我不确定如何相对容易地做到这一点,所以任何提示都非常感谢。我能想到的唯一方法就是完全从头开始实施它。例如,使用Graphics.DrawString等。这将是一项艰巨的工作。
我还检查了第三方控件,如DevExpress、Telerik、Infragistics、ComponentOne等。但它们似乎都不支持这一点。
WPF RichTextBox
控件用于编辑FlowDocument
实例,其内容是用System.Windows.Documents
命名空间中的类型定义的
每个Inline
都有一个TextDecorations
性质。它是添加到内联文本中的附加装饰(通常以行的形式)的列表。它们中的每一个都是TextDecoration
类的一个实例。
每个TextDecoration
都有自己的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
,以创建你想要的任何图案。