因为个人的使用习惯,我现在经常是笔记本+显示器的使用方式。然后家里用的是27寸的4K显示器,显示器的缩放比例一般是设置成150%。
使用的过程中发现很多的软件,在UI显示上都会出现一些问题。
主要是两点:
1、多屏/横竖屏。一些软件在有多个显示屏,特别是几个显示屏的分辨率不一样,或者有横竖屏的时候,显示和操作层面都有一些问题,包括一些热门的商业软件。
2、DPI。现在高分辨率的显示器很多,很多显示器都设置了125%和150%缩放设置。遇到这种情况,很多应用的显示和字体都有问题。
多屏显示,取尺寸和坐标的时候,然后先取到应用窗体所在的当前屏幕。包括处理一些屏幕尺寸相关的操作,都需要取到当前屏幕。如果去的不对,就会导致一些操作和显示异常。
DPI的问题,其实比较麻烦,因为我们应用开发的过程中,一些尺寸相关的东西,免不了会使用一些具体数值的设计。这种固定数值的界面设计,遇到DPI变化了,或者字体调整了,就免不了有问题。
其实这块如果是做得比较好的话,比较方便的话,其实Windows Phone开发那会儿有个方式。相当平台是基本某个特定的分辨率去开发的,例如480x800,其它的分辨率,平台会自动根据这个分辨率去放大调整。
WPF中,我现在用的方法,有时候会用字体大小去乘位数的方式去弄一些尺寸。这样字体大小调整了,有些尺寸就可以自动跟着调整。
方式就是自己定义一个IValueConverter
public class MultiplyConverter : IValueConverter
{
public double Multiplier { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is int val)
{
return (int)(val * Multiplier);
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
然后前台使用:
<cvt:MultiplyConverter x:Key="WidthConverter" Multiplier="10" />
Width="{Binding TextFontSize, Converter={StaticResource WidthConverter}}"
标签:显示器,软件开发,分辨率,object,value,UI,关于,尺寸,public
From: https://www.cnblogs.com/wzwyc/p/18494560