请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-1-21 16:07  /   查看:47  /  回复:0
ComponentOne 2020v3版本致力于将最需要的ComponentOne控件引入.NET 5框架,并为WinForms Edition添加了令人兴奋的新功能。
其中的一项功能是借助C1Icon对C1Ribbon控件进行了高DPI支持。

C1Ribbon:支持高DPI
新的C1Ribbon控件使用C1Icon对象集定义图标,这些图标应以不同的元素状态或不同的元素大小显示在单独的Ribbon元素中。例如,您可以为16x16元素大小指定一个小的符号图标,为32x32元素大小指定一个较大的png图像,以及在HighDPI模式下使用的可选矢量图标,这可能需要具有不同大小的大图像。
C1Icon是一系列类,允许指定可以着色和调整大小的单色图标。这些图标被认为在控件内部使用,并允许客户通过控件的API指定不同的图标。可能的来源是字体,矢量(路径或SVG)和图像。

新版本中,对高分辨率DPI显示器的支持现在已成为WinForms的C1Ribbon的内置部分。通过支持高DPI,现在使用C1Ribbon开发的WinForms应用程序,可以在高DPI设备上显示而不会降低质量。
这意味着,当应用程序在缩放设置不同于100%的系统上运行时,它将被正确缩放。

高DPI没有高DPI





在进一步探讨如何启用缩放的细节之前,我们先简要了解一下DPI是什么以及为什么它很重要。


DPI和显示缩放因子
每英寸点数(DPI),从技术上讲是指每英寸打印机点数,它是空间打印的度量。对于显示器来说,指可以在1英寸范围内的一行中放置的单个点的数量。
大多数旧式桌面UI框架都有内置的假设,即在使用过程中,显示器的DPI不会更改。不过,这种假设不再成立,因为在多显示器设置(如每个显示器具有不同的比例因子)的情况下,显示器DPI现在通常会发生多次更改,这些情况是通过远程桌面从高DPI笔记本电脑/平板电脑连接到低DPI设备的等
在这种情况下,如果未进行DPI缩放,则应用程序看起来模糊和/或大小不正确。


启用缩放
要启用缩放,您所要做的就是将您的应用程序声明为支持DPI,C1Ribbon会根据当前DPI设置自动缩放其UI元素。
根据目标.NET框架的不同,有多种方法可以启用/禁用缩放。
如果目标框架是.NET v4.7或更高版本,并且您要在Windows 10 Creators Update开始的Windows操作系统上运行它,则必须添加app.manifest文件和/或app.config文件
但是,如果目标框架是.NET Core 3.0或更高版本,则不需要app.manifest和app.config文件。从.NET Core 3.0开始,Microsoft引入了一种为Windows窗体设置高DPI模式的新方法。静态方法称为Application.SetHighDpiMode(HighDpiMode),其中HighDpiMode是一个枚举,并具有以下值:DpiUnaware,SystemAware,PerMonitor,PerMonitorV2和DpiUnawareGdiScaled。
  1. Application.SetHighDpiMode(HighDpiMode.PerMonitorV2);
复制代码


DPI Awareness Mode
“ DPI Awareness Mode”指定在高分辨率屏幕上显示应用程序时的显示方式。

DPI Awareness:已启用DPI Awareness:禁用





下表共享了“ HighDpiMode”枚举可用的各种值。
项目描述
DpiUnaware0应用程序窗口不会为DPI更改而缩放,并且始终假定缩放比例为100%。
DpiUnawareGdiScaled4与DpiUnaware相似,但是提高了基于GDI / GDI +的内容的质量。
PerMonitor2窗口在创建时会检查DPI,并在DPI更改时调整比例因子。
PerMonitorV23与PerMonitor相似,但可启用子窗口DPI更改通知,改进的comctl32控件缩放以及对话框缩放。
SystemAware1该窗口一次查询主监视器的DPI,并将其用于所有监视器上的应用程序。


结论
随着显示技术的发展,从不需要DPI缩放到缩放变得越来越关键,使用WinForms编写的成千上万的应用程序,都需要有良好的High DPI支持,使用C1Ribbon,您可以无缝创建最新的Microsoft Office 2019风格的应用程序。并完美的支持高DPI


0 个回复

您需要登录后才可以回帖 登录 | 立即注册