Mar*_*nas 4 c# fonts resolution winforms adaptive-design
我有一个应用程序需要适应一系列不同的屏幕尺寸(分辨率)。其中大部分工作是我使用表格布局面板完成的。
但某些控件(主要是按钮和标签)的字体太大,文本不适合控件。到目前为止,我已经通过使用更改了一些控件的字体
if (Screen.PrimaryScreen.Bounds.Width < 1440)
{
button_5.Font = new Font("Impact", button_5.Font.Size - 4);
}
Run Code Online (Sandbox Code Playgroud)
但是,为应用程序中的每个控件添加的文本太多。
有没有办法一次性更改应用程序上所有控件的字体?或者至少是表单上的所有控件?
一个简单的递归函数将遍历表单中的所有控件并更改字体大小。您需要针对您的控件进行测试并查看效果,因为在此代码中没有异常处理
public void SetAllControlsFont(ControlCollection ctrls)
{
foreach(Control ctrl in ctrls)
{
if(ctrl.Controls != null)
SetAllControlsFont(ctrl.Controls);
ctrl.Font = new Font("Impact", ctrl.Font.Size - 4);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以从顶级表单中传递初始表单的控件集合来调用它
SetAllControlsFont(this.Controls);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8472 次 |
| 最近记录: |