Как масштабировать форму с размером шрифта в WPF?

Как я могу масштабировать форму с помощью шрифта в WPF?

т.е. каков WPF-эквивалент

this.Font = SystemFonts.IconTitleFont;

В WinForms, если вы хороший разработчик, вы уважаете шрифтовые предпочтения пользователя. WinForm, которая начинается как:

enter image description here

Вы затем применяете предпочтения шрифта пользователя:

this.Font = new Font("Segoe Print", 11, GraphicsUnit.Point);

и элементы на форме масштабируются для размещения нового размера:

enter image description here

Обратите внимание:

  • форма шире и выше
  • метка расположена дальше вниз и вправо
  • метка шире и выше
  • текст метки не обрезан справа или по нижнему краю
  • кнопка шире и выше
  • но кнопка расположена дальше вниз и вправо

Примечание: В WinForms вы также можете использовать строку:

this.Font = SystemFonts.IconTitleFont;

WPF не поддерживает Font, поэтому я предоставил более понятную альтернативу. Для примера ниже.

Похожая форма WPF начинается так:

enter image description here

Затем вы применяете предпочтения шрифта пользователя с помощью:

        this.FontFamily = new FontFamily("Segoe Print");
        this.FontSize = 14.666; //11pt = 14.66

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

enter image description here

Обратите внимание:

  • положение метки не изменилось
  • положение кнопки не изменилось
  • форма не стала шире или выше (текст обрезан)
  • метка не стала шире (текст обрезан справа)
  • метка не стала выше (обрезан текст по нижнему краю)
  • кнопка не стала шире (текст обрезан)

Вот еще один пример двух кнопок, которые одинакового размера:

WinForms:

enter image description here

Windows Presentation Foundation:

enter image description here

Бонусное чтение

6
задан Community 23 May 2017 в 12:17
поделиться