【问题标题】:Design-time size of Label (Compact Framework)标签的设计时大小(紧凑框架)
【发布时间】:2015-09-24 17:03:18
【问题描述】:

我指的是 Visual Studio 设计视图。使用完整的 .NET 框架添加标签时,System.Windows.Forms.Label 控件的 AutoSize 属性默认设置为 True。如果我将Label 控件放到窗体上,默认字体为“Microsoft Sans Serif, 12pt, Regular”,控件的高度为 20。将字体更改为(例如)“Tahoma, 14pt, Bold”并且高度自动变为 23。很好。

但在 CF(Compact-Framework)中,Label 控件没有AutoSize 属性。当我如上所述更改字体时,Label 的高度不会改变(保持在 20)并且一些文本被截断。

我的问题是:没有打开一个完整的 .NET 项目并测试我的字体选择,有没有办法知道在设计时设置我的Label 的高度?

【问题讨论】:

    标签: c# compact-framework


    【解决方案1】:

    您可以使用图形对象来测量字符串的高度,例如在Paint事件或OnPaint方法中:

    Graphics g = e.Graphics;
    float lineHeight = g.MeasureString(this.Text, this.Font).Height;
    

    它可以用于继承标签。例如,您可以覆盖 OnPaint 方法或其他地方并执行此操作,然后它将在设计时运行。

    更多资源:

    【讨论】:

    • 这很棒(我已经使用过),但这是运行时检查。我的问题是关于标签的设计时大小(即 Visual Studio 设计器中控件的属性)。
    • @AlainD 我认为它可以用于继承标签。例如,您可以覆盖 OnPaint 方法并执行此操作。然后它将在设计时运行。
    • 您的回答非常好……但是对于不同的问题!我的问题与您如何在设计时(即在编译和运行应用程序之前)确定标签的大小有关。当您针对 CF 应用程序更改文本时,Visual Studio 设计器根本不会调整标签大小,但在针对完整的 .NET 应用程序时会这样做。
    • 感谢您的回复 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    相关资源
    最近更新 更多