如何在AvalonEdit中启用虚拟空间?

时间:2011-02-09 03:55:02

标签: c# wpf avalonedit

我希望在AvalonEdit中实现"Virtual Space"功能,类似于Visual Studio中的功能。

即。插入符号可以位于文本行的末尾,如果按任意键,会自动添加空格以匹配。

我非常习惯这个功能,但谷歌搜索和研究AvalonEdit的代码都没有给我任何关于如何启用它的线索,如果它得到支持的话。

如果不是,建议如何扩展插入处理机制会很好。

谢谢!

1 个答案:

答案 0 :(得分:4)

编辑: 版本4.2.0.8283中的虚拟空间支持has been added to AvalonEdit。 设置textEditor.Options.EnableVirtualSpace = true;

以下是我的原始答案。


目前不支持。

如果您想尝试添加它,请务必阅读“坐标系”文档(在CodeProject的帮助文件中)。您需要扩展“可视列”,以便行结束后的位置有效。并且您必须调整位置< - >列计算(VisualLine.GetVisualColumn和朋友)。使用TextView.WideSpaceWidth来计算超出行尾的列。

以上应允许您使用鼠标将插入符号放在虚拟空间中。之后,您需要更改插入符号移动(箭头键,CaretNavigationCommandHandler)和文本输入逻辑(TextArea.PerformTextInput)以支持虚拟空间。

如果您成功完成上述步骤,请不要忘记将更改提交给AvalonEdit。 :-) 虽然我自己不是虚拟空间的粉丝,但我们需要类似的东西来使RectangleSelection正常工作。