在C#.Net中缩放Control的字体

时间:2010-06-21 16:08:31

标签: c# .net forms controls scale

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

在缩放表单本身时,缩放表单中每个控件的字体的最佳方法是什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

哦,通过将Font的{​​{1}}属性设置为Form

来更改字体大小