2010-08-19 43 views

回答

1

Visual Studio使用自己的文本编辑器控件,而不是WPF内置的TextBox。 Visual Studio内置的文本编辑器具有许多与代码编辑相关的高级功能,但不能从Visual Studio中单独获得。

有许多开源和组件文本编辑器控件可用于WPF,其中包括区域折叠。我建议您下载AvalonEdit或this answer中列出的任何文本编辑器控件,以了解它是如何完成的,并且可以重新使用您下载的控件,也可以使用类似的技术来自己推出自己的控件。

大多数文本编辑器用于区域折叠的技巧是在为每行保留的数据结构中包含一个“大纲隐藏”标志,除了“大纲开始”标志,“大纲结束”指针和“嵌套级别”。通过保持这些更新并让显示模板通过绘制正确的图标/按钮和/或隐藏线条来表示它们,您可以很容易地获得所需的效果。显然,这依赖于文本编辑器的数据结构,它们独立地跟踪和显示每一行,这需要WPF中未包含的用于选择,导航等的额外逻辑。

相关问题