AutoEllipsis = true会影响文本的垂直位置

时间:2014-06-27 08:30:39

标签: c# winforms label text-alignment

我有一个标有AutoEllipsis = trueTextAlign = ContentAlignment.MiddleLeft的标签。当我输入不扩展标签宽度的文本时,文本垂直对齐到标签的中间。

enter image description here

但是,当文本扩展标签宽度时,文本不会与中间对齐,而是顶部对齐。

enter image description here

为什么它会以这种方式运行,有没有办法让文本垂直居中对齐?

2 个答案:

答案 0 :(得分:11)

我明白了。这似乎是底层winapi的限制,DrawTextEx()。哪个没有从Label类获得很多帮助,它没有打开DT_SINGLELINE选项(又名TextFormatFlags.SingleLine),因为它能够渲染多行。 DrawTextEx()文档表明这是获取垂直居中文本(DT_VCENTER)所必需的。所以真正的错误是它不应该集中在一起:)当你垂直增长标签时,请注意你得到居中文本。

解决此问题的最简单方法是将标签的UseCompatibleTextRendering属性设置为True。

答案 1 :(得分:0)

我所做的是将margin属性的top和bottom设置为3,并且效果很好。 所以你的保证金应该是(3,3,3,3)!