将字体与控件一起缩放

时间:2008-11-20 19:25:43

标签: .net winforms

使用WinForms,我可以使用Control.Scale来扩展控件。当我这样做时,所有子控件都重新定位并正确缩放,但字体大小保持不变。

是否有一种简单的方法可以强制字体向上/向下缩放,或者是在缩放控件时手动更新所有控件的字体的唯一方法?

背景:我正在制作一个程序,我需要支持放大/缩小,以便为视力不佳的用户提供更易读的标签,文本框等。

2 个答案:

答案 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 *强烈推荐的精彩控件库。我只是使用反射来查找所有字体属性并进行缩放。