【发布时间】:2013-09-03 20:27:46
【问题描述】:
我想知道如何计算复选框中文本的长度(以像素为单位)。文本的语言可以更改为任何语言,如英语、罗马尼亚语、西班牙语、中文、日语等。
我在同一行有一个复选框,后跟一个组合框,因此当复选框的文本长度发生变化时(更改语言时),我想相应地更改组合框的位置,以便复选框文本不会被组合框截断。
我尝试了 TextRenderer.MeasureText 方法。它适用于中文和日文,但对于其他语言,它不会返回正确的值。
有没有更好的方法来找出以像素为单位的文本长度?
提前致谢。
【问题讨论】:
-
AutoSize怎么样?当然不能推断出确切的大小,但它几乎/接近确切的大小。 -
使用TextRenderer.MeasureText(或适当的重载)似乎是首选方式。您是否有文本和字体的示例,其中预期长度不等于您从该方法获得的长度? (也请告诉我们预期和返回的长度)
-
AutoSize 不能解决问题
-
@Corak,MeasureText 方法有参数(字符串,字体)。所以,如果我的复选框文本语言不断变化,我不确定我应该在那里输入什么字体。
-
对不起@KingKing,Autosize 确实解决了这个问题。谢谢。我将复选框文本设置为自动大小,并使用复选框的大小来设置组合框的位置。感谢您的快速反应。 :)