【问题标题】:Scaling a Control's Font in C# .Net在 C# .Net 中缩放控件的字体
【发布时间】:2010-06-21 16:08:31
【问题描述】:

我们都知道 Control 基类有一个 Scale 方法。问题是:这绝对是废话。虽然它可以很好地缩放所有控件,但它不会缩放字体。所以我所有的标签、文本框和按钮看起来都非常尴尬。循环遍历表单的所有控件并更改字体非常简单,但是 Control.Font.Size 是只读的,因此 foreach(Control C in this.Controls){C.Font.Size = C.Font. Size * .8f;} 不会起作用。

当窗体本身被缩放时,缩放窗体中每个控件的字体的最佳方法是什么?

【问题讨论】:

    标签: c# .net forms controls scale


    【解决方案1】:

    要更改控件的字体大小,您必须创建一个新的 Font 对象并将其分配给控件。

    您可以使用现有控件中的Font object 作为模板来创建新的 Font 对象,同时只更改您想要的字体属性,因此:

    myControl.Font = new Font(myControl.Font, 
        myControl.Font.Style | FontStyle.Bold);
    

    这里还有一个字体缩放教程和一些示例代码: http://www.switchonthecode.com/tutorials/csharp-tutorial-font-scaling

    【讨论】:

      【解决方案2】:

      字体缩放并不是那么容易,因为你无法控制高度和宽度,你只有一个属性:Size

      我通常做的是集中使用TableLayoutPanel。然后,您可以设置字体Size,所有控件(如果正确使用DockingAutoSize)应该可以很好地缩放。

      哦,通过将FormFont 属性设置为new Font(...) 来更改字体大小

      【讨论】:

        猜你喜欢
        • 2015-01-01
        • 1970-01-01
        • 2014-07-29
        • 1970-01-01
        • 2011-09-23
        • 2015-05-07
        • 2014-07-24
        • 2013-03-16
        • 2010-09-20
        相关资源
        最近更新 更多