在AvalonEdit中只读取(并保持)行

时间:2013-01-19 17:25:23

标签: readonly avalonedit

在AvalonEdit控件中只读取某些行的有效方法是什么?允许用户更改C#或VB模板文件中的某些方法体,但不允许其他任何方法体。当用户添加或删除行时,每行的只读状态需要保持不变,即编辑内容下方的只读块需要相应地上下移动。

我在winforms上的WPFHost中使用AvalonEdit。

1 个答案:

答案 0 :(得分:9)

您可以将textEditor.TextArea.ReadOnlySectionProvider设置为IReadOnlySectionProvider的实现。

AvalonEdit包含实现TextSegmentReadOnlySectionProvider,允许将段标记为只读。当用户添加/插入文本时,这些只读段将移动。 TextSegmentReadOnlySectionProvider不允许您阻止在文档的开头和结尾插入(因为这些位置永远不在任何段内),但您可以从类继承并覆盖CanInsert()来修复这个特例。