当前位置:网站首页>今天告诉你界面控件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 欢迎一起进群讨论
边栏推荐
- FPGA:开发环境Vivado的使用
- 入门 Polkadot 平行链开发,看这一篇就够了
- FPGA: Basic Getting Started Button Controlling LED Lights
- RT-Thread记录(一、RT-Thread 版本、RT-Thread Studio开发环境 及 配合CubeMX开发快速上手)
- 用户考试分数大于单科科目平均分的查询
- 什么是 DevOps?看这一篇就够了!
- Jenkins使用手册(2) —— 软件配置
- Go compilation principle series 6 (type checking)
- 一个栈的输入序列为1 2 3 4 5 的出站顺序的理解
- 牛刀小试基本语法,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本语法和变量的使用EP02
猜你喜欢

我们的Web3创业项目,黄了

How can project cost control help project success?

Still looking for a network backup resources?Hurry up to collect the following network backup resource search artifact it is worth collecting!

Meteorological data processing example - matlab string cutting matching and R language date matching (data splicing)

首次去中心化抢劫?近2亿美元损失:跨链桥Nomad 被攻击事件分析

Confessing in the era of digital transformation: Mai Cong Software allows enterprises to use data in the easiest way

This notebook of concurrent programming knowledge points strongly recommended by Ali will be a breakthrough for you to get an offer from a big factory

What are the standards for electrical engineering

阿里顶级架构师多年总结的JVM宝典,哪里不会查哪里!

012年通过修补_sss_提高扩散模型效率
随机推荐
MySQL transactions
Go compilation principle series 6 (type checking)
这份阿里强推的并发编程知识点笔记,将是你拿大厂offer的突破口
Common operations of oracle under linux and daily accumulation of knowledge points (functions, timed tasks)
012年通过修补_sss_提高扩散模型效率
Still looking for a network backup resources?Hurry up to collect the following network backup resource search artifact it is worth collecting!
还在找网盘资源吗?快点收藏如下几个值得收藏的网盘资源搜索神器吧!
首次去中心化抢劫?近2亿美元损失:跨链桥Nomad 被攻击事件分析
技术干货 | 基于 MindSpore 实现图像分割之豪斯多夫距离
three objects are arranged in a spherical shape around the circumference
The host computer develops C# language: simulates the STC serial port assistant to receive the data sent by the microcontroller
js hijacks the array push method
七夕来袭!还要做CDH数据迁移怎么办?来看看DistCp
深入理解 Istio 流量管理的超时时间设置
登录功能和退出功能(瑞吉外卖)
High-quality DeFi application building guide to help developers enjoy DeFi Summer
如何测试一下现场的备机失败,转发主机的场景?
In-depth understanding of timeout settings for Istio traffic management
Where is your most secretive personality?
导火索:OAuth 2.0四种授权登录方式必读