当前位置:网站首页>今天告诉你界面控件DevExpress WinForms为何弃用经典视觉样式
今天告诉你界面控件DevExpress WinForms为何弃用经典视觉样式
2022-08-05 10:27:00 【界面开发小八哥】
许多DevExpress老用户都知道,使用DevExpress WinForm UserLookAndFeel API可为单个控件或整个应用程序启用"classic"视觉样式(“Flat”、“UltraFlat”、“XP”等)。在这篇文章中,小编将为大家描述这些“过时”的经典样式,并解释为什么我们选择启用此API,并将"Skin" 样式作为唯一选择。
获取DevExpress WinForms v22.1正式版下载
经典样式的案例
性能
每个皮肤都存储了大量绘制在 UI 元素上方的光栅或矢量图像,如果禁用皮肤并切换到经典视觉样式,理论上可以提高应用程序性能(因为 UI 元素将不再需要检索和绘制皮肤图像)。
实际上,皮肤和"Flat" 应用程序之间的性能差异可以忽略不计(考虑到现代硬件性能)。 矢量皮肤的可用性使这个问题变得没有意义——矢量图像比光栅位图对应物轻量级并且消耗更少的资源。
远程桌面环境
用户群中有一个普遍的认知,简单的绘制方法(负责平面外观)在远程桌面环境中最有效。 事实上,所有现代远程环境都采用视频流编码,根据内部测试,矢量图像在这种环境下会产生最佳效果。换句话说,矢量 WinForms 主题以及我们新的 OptimizeRemoteConnectionPerformance设置将在远程环境中提供最佳性能 - 并且不会牺牲 WinForms 应用程序的整体外观。
易于访问
旧的"High Contrast" 皮肤是基于光栅图像的,这意味着它无法适应系统设置。 如果您希望应用程序使用"Personalize | High contrast settings" Windows 菜单中的颜色,则必须启用经典的"Flat"样式。虽然这种样式可以从激活的Windows 高对比度主题中检索颜色,但某些控件(例如我们的功能区)保留了自己独特的外观。
随着 v21.1 的发布,用户可以使用基于矢量的高对比度皮肤。 此皮肤使用来自激活的Windows预设的颜色,并且(与我们经典的 "Flat"样式不同)保证在所有 DevExpress WinForm UI 控件中提供统一的外观。
自定义突出显示
由于皮肤图像直接绘制在 UI 元素上方,因此某些使用场景会阻止您使用元素的外观设置(即“BackColor”属性)。 对于那些想要应用自定义元素外观(例如,将“取消”SimpleButton 涂成红色)的人来说,禁用皮肤并切换到经典样式是默认技术。
这个 "limitation” 不再是限制(v18.2+),在v18.2版本中,即使皮肤处于激活状态,我们也可以使用外观设置。
个人偏好
有些人更喜欢 "unskinned"的复古外观和感觉,现在您可以使用DevExpress 矢量皮肤提供 “retro” 外观,矢量皮肤包括数十种颜色变化(调色板),包括简化的"gray-ish" 颜色选项。
正如我们希望在这篇文章中说明的那样,经典样式和 "unskinned" 应用程序的情况已不再是以前那样。 尽管有这个现实,你可能会问为什么? 为什么要弃用经典样式等长期存在的功能?
这个问题的简单答案是旧样式设置和我们的一些最新功能不兼容。 例如,当 UserWindowsXPTheme 设置处于激活状态时,DevExpress WinForms 数据网格的标题内筛选器无法正常工作。 此外每次引入一个新的特性,比如 in-header 过滤器,我们都被迫重写单独的控制绘制器,支持经典样式等传统功能的成本很高,并且在某些情况下会产生不可接受的结果(例如,XP主题在高DPI设备上看起来不太好)。
下一步是什么?
删除整个自定义 API 层是一大步,官方产品团队不会急于这样做。目前将停止修复与经典样式相关的错误,最终将弃用这些旧设置,以防止它们产生类似于与标题列过滤相关的问题。
DevExpress WinForm拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
DevExpress技术交流群6:600715373 欢迎一起进群讨论
边栏推荐
- 2022 Hangzhou Electric Power Multi-School Session 6 1008.Shinobu Loves Segment Tree Regular Questions
- 七夕来袭!还要做CDH数据迁移怎么办?来看看DistCp
- 静态链接和动态链接
- Huawei's lightweight neural network architecture GhostNet has been upgraded again, and G-GhostNet (IJCV22) has shown its talents on the GPU
- 2022华数杯数学建模A题环形振荡器的优化设计思路思路代码分享
- 如何选币与确定对应策略研究
- Chapter 5: Multithreaded Communication—wait and notify
- 深入理解 Istio 流量管理的超时时间设置
- Chapter 5: Activiti process shunting judgment, judging to go to different task nodes
- 第九章:activit内置用户组设计与组任务分配和IdentityService接口的使用
猜你喜欢
Meteorological data processing example - matlab string cutting matching and R language date matching (data splicing)
The century-old Nordic luxury home appliance brand ASKO smart wine cabinet in the three-temperature area presents the Chinese Valentine’s Day, and tastes the love of the delicacy
一文道清什么是SPL
Introduction to SD NAND Flash!
数据可视化(一)
入门 Polkadot 平行链开发,看这一篇就够了
MySQL事务
项目成本控制如何帮助项目成功?
Our Web3 Entrepreneurship Project, Yellow
Voice-based social software development - making the most of its value
随机推荐
What are the standards for electrical engineering
LeetCode 216. Combined Sum III (2022.08.04)
第三章 : redis数据结构种类
Jenkins使用手册(2) —— 软件配置
R语言ggplot2可视化:可视化密度图(Density plot)、可视化多个分组的密度图、数据点分布在箱图中间、添加主标题、副标题、题注信息
阿里顶级架构师多年总结的JVM宝典,哪里不会查哪里!
攻防世界-PWN-new_easypwn
电气工程的标准是什么
RT-Thread记录(一、RT-Thread 版本、RT-Thread Studio开发环境 及 配合CubeMX开发快速上手)
Huawei's lightweight neural network architecture GhostNet has been upgraded again, and G-GhostNet (IJCV22) has shown its talents on the GPU
static linking and dynamic linking
Where is your most secretive personality?
Go compilation principle series 6 (type checking)
我们的Web3创业项目,黄了
上位机开发C#语言:模拟STC串口助手接收单片机发送数据
uniapp 连接ibeacon
Score interview (1)----related to business
第四章:redis 数组结构的set和一些通用命令「建议收藏」
STM32+ULN2003驱动28BYJ4步进电机(根据圈数正转、反转)
机器学习-基础知识 - Precision, Recall, Sensitivity, Specificity, Accuracy, FNR, FPR, TPR, TNR, F1 Score, Bal