Что такое WPF-версия Control.ScaleControl
?
Я пытаюсь удовлетворить предпочтения шрифта пользователя, установив для шрифта IconTitleFont :
private void ApplyUserFontPreferences()
{
this.FontFamily = SystemFonts.IconFontFamily;
this.FontSize = SystemFonts.IconFontSize;
this.FontStyle = SystemFonts.IconFontStyle;
this.FontWeight = SystemFonts.IconFontWeight;
}
В отличие от WinForms, содержимое формы не масштабируется с изменением шрифта:
До
После (плохо)
В действительности все элементы управления в форме (включая размер кнопок, ширину столбцов списка и т. Д.) Должны масштабироваться в соответствии сновый макет:
После (хорошо)
Поскольку WPF не ( в отличие от WinForms ) реагирует на размеры шрифтаизменения, я собирался обойти проблему, пытаясь самостоятельно масштабировать форму WPF, используя гипотетическую версию WPF ScaleControl
:
private void ApplyUserFontPreferences()
{
Double scaleFactor = (SystemFonts.IconFontSize / this.FontSize); //i.e. new / old
this.ScaleControl(scaleFactor); //doesn't exist
this.FontFamily = SystemFonts.IconFontFamily;
// this.FontSize = SystemFonts.IconFontSize;
this.FontStyle = SystemFonts.IconFontStyle;
this.FontWeight = SystemFonts.IconFontWeight;
}
Еще один пример желаниямасштабировать элемент управления (и все дочерние элементы управления) - это когда мне нужно масштабировать элемент управления (и все дочерние элементы управления), чтобы он соответствовал заданному размеру.В этом случае я не хочу масштабировать всю форму, я хочу масштабировать только определенный элемент управления.