0

例如,如何仅更改第 15 行的字体?我已经使用过.ScrollTo(15,4);,但是当我在第 15 行时没有命令突出显示或任何东西。(我想通过代码动态地做到这一点)。那么有什么方法可以只编辑一行?而且我还想知道如何通过代码突出显示该行。这是我的xml:

                            <Grid>
                            <avalonEdit:TextEditor
            Name="debuggertext"
            FontFamily="Consolas"
            FontSize="10pt"

                                ShowLineNumbers="True"
            SyntaxHighlighting="C++" VerticalScrollBarVisibility="Auto" IsReadOnly="True" HorizontalScrollBarVisibility="Disabled"

        />
4

1 回答 1

2

AvalonEdit 是一个代码编辑器;不是富文本编辑器。您不能只更改某些文本的颜色,因为 AvalonEdit 不存储颜色,它会即时计算它们。

解决方案是自己存储颜色,并扩展 AvalonEdit 的动态格式以从您的数据结构中读取。阅读我的代码项目文章的“渲染”部分的草稿(该部分的大部分内容没有进入最终文章,因为该文章旨在介绍 AvalonEdit);然后看看这个论坛帖子以获得一些想法。

AvalonEdit 5.0 还添加了一些可以帮助实现富文本编辑器的类:ICSharpCode.AvalonEdit.Highlighting.RichTextModel是一种可以存储字体样式/粗细/颜色的数据结构;RichTextColorizer可以在渲染期间应用这些。请注意,您必须手动将这些类连接到编辑器。

于 2013-07-10T08:18:29.527 回答