масштабирование шрифтов вместе с элементами управления - PullRequest
1 голос
/ 20 ноября 2008

С WinForms я могу использовать Control.Scale, чтобы увеличить масштаб элемента управления. Когда я это сделаю, все дочерние элементы управления будут правильно размещены и масштабированы, но размер шрифта останется прежним.

Существует ли простой способ принудительного увеличения или уменьшения шрифта или единственный способ вручную обновить шрифт для всех элементов управления при масштабировании элемента управления?

Справочная информация. Я работаю над программой, в которой мне нужно поддерживать увеличение / уменьшение масштаба, чтобы сделать надписи, текстовые поля и т. Д. Более читабельными для пользователей с плохим зрением.

Ответы [ 2 ]

2 голосов
/ 20 ноября 2008

Сделай это наоборот. Измените размер шрифта, элементы управления автоматически масштабируются, чтобы вместить больший шрифт. Например:

  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 голос
/ 21 ноября 2008

Я не смог найти решение, поэтому я закончил масштабирование шрифта вручную.

Я использую Krypton Toolkit * (настоятельно рекомендуется, отличная библиотека элементов управления), которая поддерживает темы. Я просто использовал отражение, чтобы найти все свойства шрифта и увеличить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...