我们都知道Control基类有一个Scale方法。问题是:这是绝对的废话。虽然它令人钦佩地扩展了所有控件,但它并没有扩展字体。所以我的所有标签,文本框和按钮看起来都很尴尬。只是循环遍历所有表单的控件并更改字体将是如此简单,但Control.Font.Size是只读的,因此foreach(this.Controls中的Control C){C.Font.Size = C.Font。大小* .8f;}不会起作用。
在缩放表单本身时,缩放表单中每个控件的字体的最佳方法是什么?
答案 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
,并且所有控件都应该(如果正确使用Docking
和AutoSize
)可以很好地缩放。
哦,通过将Font
的{{1}}属性设置为Form