0

此代码片段来自RichEditBox样式应用程序,

Document.Selection.SetRange(paragraphStartIndex, paragraphStartIndex + data.Text.Length);
Document.Selection.CharacterFormat.Strikethrough = FormatEffect.On;

但是,我们可以用 a 做类似的事情RichTextBlock吗?

我知道我可以添加 a<run>或 a<Span>并向这些元素添加样式信息,但是有没有办法抓取整个RichTextBlock内容并将样式应用于其中的一系列文本?

4

1 回答 1

1

RichTextBlock并且RichEditBox是富文本相关的控件,但是在显示上却有很大的不同。

RichEditBox显示富文本的过程就像在纸上画图一样,因为它承载了修改的功能,所以有一个完整Document的作为载体。

RichTextBlock不负责修改,只负责展示,所以更像是积木。RichTextBlock有很多显示元素来渲染不同的视觉效果,但它们是相互独立的。您不能为某个角色设置效果。您只能为整个块设置效果(例如Paragraph)。

当在 中选择文本时RichTextBlock,可以通过RichTextBlock.SelectionStart.Parent或获取当前选中文本的父元素RichTextBlock.SelectionEnd.Parent,并设置效果。

此致。

于 2019-09-27T07:45:49.057 回答