使用WinForms,我可以使用Control.Scale
来扩展控件。当我这样做时,所有子控件都重新定位并正确缩放,但字体大小保持不变。
是否有一种简单的方法可以强制字体向上/向下缩放,或者是在缩放控件时手动更新所有控件的字体的唯一方法?
背景:我正在制作一个程序,我需要支持放大/缩小,以便为视力不佳的用户提供更易读的标签,文本框等。
答案 0 :(得分:2)
反过来做。更改字体大小,控件将自动缩放以容纳更大的字体。例如:
public partial class Form1 : Form {
float mDesignSize;
int mIncrement;
public Form1() {
InitializeComponent();
mDesignSize = this.Font.SizeInPoints;
}
private void adjustFont() {
float size = mDesignSize * (1 + mIncrement / 7f);
this.Font = new Font(this.Font.FontFamily, size);
}
private void btnIncreaseFontSize_Click(object sender, EventArgs e) {
mIncrement += 1;
adjustFont();
}
private void btnDecreateFontSize_Click(object sender, EventArgs e) {
mIncrement -= 1;
adjustFont();
}
}
答案 1 :(得分:1)
我找不到解决方案,所以我最终手动缩放字体。
我正在使用支持主题的Krypton Toolkit *强烈推荐的精彩控件库。我只是使用反射来查找所有字体属性并进行缩放。