关于软件开发中UI相关的问题

因为个人的使用习惯,我现在经常是笔记本+显示器的使用方式。然后家里用的是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}}"
posted @   wzwyc  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示