什么是 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;
}
想要缩放控件(和所有子控件)的另一个示例是当我需要缩放控件(和所有子控件)以适应给定大小时。在这种情况下,我不想缩放整个表单,我只想缩放特定控件。