有什么好的方法可以动态改变我的应用程序中的字体大小吗?我有许多屏幕和标签。这些标签至少继承自一个共同的标签。另一个问题是我是否应该让标签自适应大小,并只在标签中使用换行符进行分割?我已经将许多标签切换为不自适应大小,因为它们变得宽而不能自动换行。
目前,我已将所有设置为锚定等等,任何按钮等都没问题。现在只需要动态调整字体大小。
谢谢!
目前,我已将所有设置为锚定等等,任何按钮等都没问题。现在只需要动态调整字体大小。
谢谢!
在每个窗体的构造函数中,在InitializeComponent();
之前,只需放置this.Font = new Font( ... );
,以您所需的方式进行设置。然而,它只会在您将每个控件保留为默认值时进行级联。您始终可以在初始化之后放置循环:
foreach(Control c in this.Controls)
{
if(c is Label) //if you want to change Labels only
c.Font = new Font( ... );
}
AutoScaleMode
和相关属性。Label1.AutoSize = true
,然后简单地设置Label1.MaximumSize = new Size(x, 0);
,其中x是您的最大宽度。你可以将字体大小保存为应用程序设置中的整数。 然后,当你获取字体大小时,你的应用程序将记住它的字体状态。
Properties.Settings.Default.FontSize = 3;
Properties.Settings.Default.Save();
然后像上面所说的那样使用foreach循环。
foreach(Control c in this.Controls)
{
c.Font = new Font( .. );
// if(c is Panel)
// {
// foreach(Control d in c.Controls)
// {
// d.Font = new Font( .. );
// }
}
}