我正在尝试使 avalonedit 从右到左布局,以便支持从右到左的语言(例如阿拉伯语)
代码似乎太大了,无法理解,我至少需要知道我的更改在哪里?它的主要模块是什么,或者一些阐明每个组件的图表/文档(除了随源提供的 4 张图像)
我至少需要知道编辑器的基本组件是什么。谢谢您的帮助
最佳答案
TextView
类负责实际的文本渲染。文本行内的布局是使用 WPF TextFormatter
完成的(请参阅 TextView.cs 中的#region BuildVisualLine)。
AvalonEdit 已经支持从左到右的段落中的双向文本,因此如果您可以让 WPF 创建从右到左的段落,编辑器应该可以工作。
我认为更改 VisualLineTextParagraphProperties.FlowDirection
属性可能就足够了。
理想情况下, TextView 将使用 TextView.FlowDirection
的值来实现此目的,但在使用 TextView.FlowDirection
时我看到了一些奇怪的效果(文本被镜像) 。不知道这是怎么回事;我不熟悉 WPF 在从右到左上下文中的工作方式(我猜有一些自动镜像功能?)。
关于layout - AvalonEdit:如何使其从右到左?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21833248/