Wpf 如何在AvaloneEdit中居中显示文本?

Wpf 如何在AvaloneEdit中居中显示文本?,wpf,avalonedit,Wpf,Avalonedit,我使用的是ICSharpCode的AvaloneEdit文本编辑器,我有一个自定义的DocumentColorizingTransformer 我想在ColorizeLine中居中放置某些文本行。这可能吗 我已经能够想出如何以我想要的任何其他方式(颜色、斜体、下划线等)更改行的文本,但我无法想出如何更改行的文本对齐方式…为此,我不得不挖掘编辑器的源代码: 首先,在中,我必须通过一个新的内部属性(默认为LeftAligned)公开TextAlignment,以便设置它(当然,还可以从公共属性的ge

我使用的是ICSharpCode的AvaloneEdit文本编辑器,我有一个自定义的DocumentColorizingTransformer

我想在ColorizeLine中居中放置某些文本行。这可能吗


我已经能够想出如何以我想要的任何其他方式(颜色、斜体、下划线等)更改行的文本,但我无法想出如何更改行的文本对齐方式…

为此,我不得不挖掘编辑器的源代码:

首先,在中,我必须通过一个新的内部属性(默认为LeftAligned)公开TextAlignment,以便设置它(当然,还可以从公共属性的getter返回它)

然后,在BuildVisualLine方法中,我必须测试documentLine的文本,以确定我希望行居中的条件,然后相应地更改paragraphProperties对象

请注意,我必须复制paragraphProperties,否则居中对齐将溢出到下一行(因为给定的paragraphProperties对象似乎被重用)


还要注意的是,我找不到一种方法来使用VisualNeelementGenerator来实现这一点——尽管在我看来,这仍然是一个改变文本对齐方式的地方……

对于右侧对齐方式,只有很少的2个像素减小到可用的
。当构建
文本行时,需要宽度
。否则,当光束光标被推过右边框时,它将不可见。