原文:
wpf-MVVM界面自适应:界面自适应及字体自适应
1,界面自适应
界面先划分Region,每个填充Region的View不设置Width属性,即可按照Region划分的比例,自适应屏幕分辨率
2.字体自适应
程序根据屏幕分辨率分别计算4种字体大小,从大到下为:
TitleFontSize
TabFontSize
GridFontSize
ControlFontSize
计算方法:
private void FontSizeChange()
{
double titlesize = ((SystemParameters.PrimaryScreenWidth / 12) / 3 * 2) / 5;
System.Windows.Application.Current.Resources.Remove("TitleFontSize");
System.Windows.Application.Current.Resources.Add("TitleFontSize", titlesize);
double tabsize = ((SystemParameters.PrimaryScreenWidth / 12) / 3 * 2) / 5 * 0.9;
System.Windows.Application.Current.Resources.Remove("TabFontSize");
System.Windows.Application.Current.Resources.Add("TabFontSize", tabsize);
double gridsize = ((SystemParameters.PrimaryScreenWidth / 12) / 3 * 2) / 5 * 0.8;
System.Windows.Application.Current.Resources.Remove("GridFontSize");
System.Windows.Application.Current.Resources.Add("GridFontSize", gridsize);
double controlsize = ((SystemParameters.PrimaryScreenWidth / 12) / 3 * 2) / 5 * 0.7;
System.Windows.Application.Current.Resources.Remove("ControlFontSize");
System.Windows.Application.Current.Resources.Add("ControlFontSize", controlsize);
}
在XAML界面设置字体即可:
FontSize="{DynamicResource GridFontSize}