Wpf 如何在AvaloneEdit中居中显示文本?
我使用的是ICSharpCode的AvaloneEdit文本编辑器,我有一个自定义的DocumentColorizingTransformer 我想在ColorizeLine中居中放置某些文本行。这可能吗Wpf 如何在AvaloneEdit中居中显示文本?,wpf,avalonedit,Wpf,Avalonedit,我使用的是ICSharpCode的AvaloneEdit文本编辑器,我有一个自定义的DocumentColorizingTransformer 我想在ColorizeLine中居中放置某些文本行。这可能吗 我已经能够想出如何以我想要的任何其他方式(颜色、斜体、下划线等)更改行的文本,但我无法想出如何更改行的文本对齐方式…为此,我不得不挖掘编辑器的源代码: 首先,在中,我必须通过一个新的内部属性(默认为LeftAligned)公开TextAlignment,以便设置它(当然,还可以从公共属性的ge
我已经能够想出如何以我想要的任何其他方式(颜色、斜体、下划线等)更改行的文本,但我无法想出如何更改行的文本对齐方式…为此,我不得不挖掘编辑器的源代码: 首先,在中,我必须通过一个新的内部属性(默认为LeftAligned)公开TextAlignment,以便设置它(当然,还可以从公共属性的getter返回它) 然后,在BuildVisualLine方法中,我必须测试documentLine的文本,以确定我希望行居中的条件,然后相应地更改paragraphProperties对象 请注意,我必须复制paragraphProperties,否则居中对齐将溢出到下一行(因为给定的paragraphProperties对象似乎被重用)
还要注意的是,我找不到一种方法来使用VisualNeelementGenerator来实现这一点——尽管在我看来,这仍然是一个改变文本对齐方式的地方……对于右侧对齐方式,只有很少的2个像素减小到可用的
。当构建文本行时,需要宽度。否则,当光束光标被推过右边框时,它将不可见。