DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
获取DevExpress 最新版下载
DPI Awareness模式
DPI Awareness模式指定在高分辨率屏幕上显示应用程序的方式。
如何在DevExpress应用程序中DPI Awareness
要使基于DevExpress的WinForms应用程序能够感知DPI,请打开Project Settings Page并选择所需的感知模式。
或者,在应用程序启动时调用以下方法:
不要使用应用程序清单文件来启用DPI感知,因为这可能会导致许多问题(例如,与clickonce不兼容)。
在应用程序被设置为DPI-aware时,不要使用Microsoft Windows图形设备接口(GDI),这可能会导致意想不到的结果。也就是说不要使用任何图形对象,如位图、笔刷或字体。另外,不要调用可能使用它们的任何子系统(例如,不要将皮肤应用到应用程序)。
调用静态的(在VB.NET中共享)WindowsFormsSettings.ForcePaintApiDiagnostics方法,以确保正确激活DPI感知。
如何构建HDPI-Ready应用程序
常用推荐和设置
控制尺寸和布局
因为您的应用程序需要根据显示的DPI值调整大小,保持布局灵活。如果可能,使用LayoutControl、TablePanel和StackPanel容器,当父容器大小发生变化时,这些容器会自动调整控件的布局。
Images
不管DPI感知模式、光栅图像缩放出现模糊时,要保持简洁的应用程序外观,请使用矢量图像:矢量皮肤和SVG图标。
如果您更喜欢栅格项目图标,可以使用DPIAwareImageCollection存储:它为每个DPI值存储独立的图像包,并根据显示在它们之间动态切换。
自定义绘制
许多DevExpress控件公开CustomDraw事件,允许您重绘控件元素。
在支持DPI Awareness之前,这些事件公开了返回Graphics对象的e.Graphics属性,您可以调用此对象的方法来绘制自定义形状和文本字符串。
C#
e.Graphics.DrawString(...);
VB.NET
e.Graphics.DrawString(...)
现在所有CustomDraw
C#
e.Cache.DrawString(...);
VB.NET
e.Cache.DrawString(...)
单独控件设置
故障排除
要跟踪所有不推荐用于DirectX-rendered和Per-Monitor DPI-aware应用程序的API时,请调用静态WindowsFormsSettings.ForcePaintApiDiagnostics方法,并将安全级别设置为第一个参数:
远程环境下图形性能优化
远程用户不断收到应用程序视觉外观的快照,应用程序的视觉效果越多,需要进行的更新就越多。如果连接很差且刷新率低,应用程序可能看起来没有响应。在一些低性能的环境中,您可能会遇到类似的问题,例如当您的目标是使用WinForms应用程序的嵌入式系统时。
要在远程环境中减少流量消耗并提高整体性能,可以有选择地禁用可选效果。
在v21.1或更新版本中,启用OptimizeRemoteConnectionPerformance属性以最小化视觉效果和动画的数量。