在AvalonEdit控件上启用代码折叠

时间:2016-02-23 07:59:03

标签: c# wpf avalonedit

我尝试在AvalonEdit控件上启用代码折叠,但我无法正确启用它。

public FoldingManager foldingManager;
public XmlFoldingStrategy foldingStrategy;

启用代码折叠我在Window_Loaded上插入此代码

foldingManager = FoldingManager.Install(textEditor.TextArea);
foldingStrategy = new XmlFoldingStrategy();
foldingStrategy.UpdateFoldings(foldingManager, textEditor.Document);

并更新折叠我插入到textEditor_TextChanged这段代码

foldingStrategy.UpdateFoldings(foldingManager, textEditor.Document);
来自Window_Loaded的

我只得到第一次折叠工作(如图中其他标签未更新)

textEditor_TextChanged中的代码根本不起作用

Code folding example

1 个答案:

答案 0 :(得分:1)

您的文档不是有效的XML文档:XML只允许一个顶级元素,但您有两个(<head><body>)。

因此,

XmlFoldingStrategy只能折叠文档的有效部分。 如果您想要HTML折叠,则需要编写自己的HtmlFoldingStrategy

如果您确定强制HTML为有效XML,则必须添加开头<html>标记。