【问题标题】:Is there a generally useful formula for width of generic Windows buttons, checkboxes, and labels based on length of text?是否有基于文本长度的通用 Windows 按钮、复选框和标签宽度的通用公式?
【发布时间】:2014-07-20 10:24:51
【问题描述】:

我正在动态创建各种 Windows 控件,用户提供将显示在按钮、复选框旁边、标签内等的文本。

使用默认的 Windows 字体,是否有一个“足够好”(这只是一个模型,无论如何 - 不一定是完美的)公式来确定控件的宽度应该相对于宽度的文本?例如,它应该是这样的:

Control.Width = text.Length * 3

...或者...???

【问题讨论】:

    标签: c# dynamic text width controls


    【解决方案1】:

    无需手动执行此操作。

    在您的Control will do this for you 上将AutoSize 属性设置为true

    【讨论】:

    • 但这只有在您对肯定会产生的糟糕布局感到满意时才有用。只有知道大小,您才能根据控件的大小将控件相互关联,例如提供某种对齐方式。
    • 这对我来说是完美的;正如我所说,这只是一个模型,“足够好”就是这样。最简单的方法往往是最好的。
    【解决方案2】:

    您始终可以使用TextRenderer.MeasureText 测量文本大小。一旦你有了字符串的宽度,你只需要添加一些额外的宽度来允许控制边框和其他。

    【讨论】:

    • MeasureText,而不是 MeasureSize
    • Grpahics.MeasureString 也是另一种选择。
    猜你喜欢
    • 1970-01-01
    • 2020-05-29
    • 2015-08-30
    • 2018-10-26
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多