我有一个标有AutoEllipsis = true
和TextAlign = ContentAlignment.MiddleLeft
的标签。当我输入不扩展标签宽度的文本时,文本垂直对齐到标签的中间。
但是,当文本扩展标签宽度时,文本不会与中间对齐,而是顶部对齐。
为什么它会以这种方式运行,有没有办法让文本垂直居中对齐?
答案 0 :(得分:11)
我明白了。这似乎是底层winapi的限制,DrawTextEx()。哪个没有从Label类获得很多帮助,它没有打开DT_SINGLELINE选项(又名TextFormatFlags.SingleLine),因为它能够渲染多行。 DrawTextEx()文档表明这是获取垂直居中文本(DT_VCENTER)所必需的。所以真正的错误是它不应该集中在一起:)当你垂直增长标签时,请注意你做得到居中文本。
解决此问题的最简单方法是将标签的UseCompatibleTextRendering属性设置为True。
答案 1 :(得分:0)
我所做的是将margin属性的top和bottom设置为3,并且效果很好。 所以你的保证金应该是(3,3,3,3)!