c# - 如何在 AvalonEdit 中监听折叠事件

标签 c# wpf folding avalonedit

我已成功将折叠添加到我的 AvalonEdit 文档中,但是,为了获得真正有用​​的体验,我需要存储折叠状态,以便下次用户打开文档时,折叠状态会恢复.

我的问题是如何知道 FoldSection 何时被用户折叠(例如单击时)? This class不通知属性变更。我找不到任何事件来改变折叠状态。

最佳答案

不幸的是,AvalonEdit 没有实现这样的事件。 您必须从 GitHub 获取源代码并自行添加。

FoldingManager 将创建一个 TextSegmentCollection。使用 FoldingManager.AllFoldings,即使状态为 IsFolded,您也应该能够看到所有折叠。但不可能从用户控件外部进行设置。所以你必须改变原始来源。

看来 AvalonEdit 的团队不再真正更新该项目了...目前我正在以 AvalonEdit 为基础开发我的版本。也许我也会找到时间来实现这个功能,但这可能需要时间......所以当你可以自己解决你的问题时,请告诉我:)

关于c# - 如何在 AvalonEdit 中监听折叠事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45869063/

相关文章:

wpf - 使用 DataBinding 值的 MarkupExtension

c# - Wpf事件不冒泡

WPF 打印多页预览

java - 如何在 Java 中实现列表折叠

c# - 用其总和替换集合中的重复值

c# - 这是在 C# 中制作简单 "scheduler"的可接受方法吗?

c# - 如何在T4模板中 "read"EF6 EntityTypeConfiguration?

C# #import 从缺失的类型库中引用了一个类型; '__missing_type__' 用作占位符

vim - Vim 中折叠和子折叠的不同颜色

vim - Gvim 使用鼠标折叠切换