我正在使用ICSharpCode的AvalonEdit文本编辑器,我有一个自定义的DocumentColorizingTransformer。
我想将ColorizeLine中的某些文本行居中。这可能吗?
我已经能够弄清楚如何以我想要的其他方式(颜色,斜体,下划线等)更改线条的文字,但我无法弄清楚如何改变行的文本对齐...
答案 0 :(得分:2)
我最终不得不深入研究编辑的来源:
首先,在VisualLineTextParagraphProperties.cs中,我不得不通过一个新的内部属性(默认为LeftAligned)公开TextAlignment,所以我可以设置它(当然,从公共属性的getter返回它)
然后,在TextView.cs中,在BuildVisualLine方法中,我必须测试documentLine的文本以了解我希望行居中的条件,然后相应地更改paragraphProperties对象。
请注意我必须复制paragraphProperties - 否则中心对齐会渗透到下一行(因为给定的paragraphProperties对象似乎可以重用)。
另请注意,我找不到使用VisualLineElementGenerator执行此操作的方法 - 即使它仍然在我看来会更改像TextAlignment这样的地方......