界面控件DevExpress WinForms v24.1新版亮点 - 可访问性和UI自动化增强

news/2024/10/17 21:39:33/

DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

DevExpress WinForms控件v24.1日前已经全新发布,新版本进一步提升可访问性和UI自动化功能、性能提升等,欢迎下载最新版体验!

DevExpress v24.1正式版下载

可访问性和UI自动化
可访问键盘导航

TabPane & NavigationPane

新版本为DevExpress WinForms TabPane和Navigation Pane控件添加了键盘导航支持(很像XtraTabControl控件),键盘焦点现在管理如下:

  • Right/Left Arrow — 激活下一页/上一页。
  • Ctrl+Tab / Ctrl+Shift+Tab — 激活下一页/上一页并聚焦页面上显示的选项卡标题或UI控件。
  • Home — 激活第一页。
  • End — 激活最后一页。

其他API包括:

  • AllowNavigationThroughPages — 当用户使用tab键进行导航时,激活此选项来聚焦选项卡标题(而不是页面上显示的UI控件),默认情况下,该选项是禁用的。
  • ShowHeaderFocus — 显示/隐藏聚焦矩形。

BarEditItems中基于文本框的数据编辑器

新版本改进了了Ribbon UI和工具栏中的键盘导航,键盘焦点现在被适当地管理来模仿Microsoft Word中的行为。具体来说,当BarEditItem具有焦点并且用户按下箭头键时,BarEditItem保留焦点,从而允许在编辑器中进行导航。

DevExpress WinForms v24.1产品图集

v24.1公开了新的属性,允许您使用嵌入式编辑器(BarEditItem)来抑制栏项的键盘键(Alt或Control):

  • BarManager.SuppressModifierKey — 这个全局设置指定表单中所有BarEditItems的操作。
  • BarEditItem.SuppressModifierKey — 指定特定BarEditItem的操作。

下面的示例为带有组合框的栏项激活受MS Word启发的操作,而不是使用Alt+向下箭头组合打开下拉菜单,用户只需要按下向下箭头:

DevExpress WinForms v24.1产品图集

C#

public Form1() {
InitializeComponent();
barItemCombobox.SuppressModifierKey = DevExpress.XtraEditors.SuppressKeys.Alt;
}

基于ButtonEdit的编辑器

新版本在ButtonEdit相关控件中优化了键盘焦点,以确保它遵循逻辑和直观的顺序。用户可以很容易地从编辑框中选择按钮,使用左/右键导航按钮,按下按钮(Enter/空格),然后选择返回编辑框(Escape或Shift+ tab)。

DevExpress WinForms v24.1产品图集

使用WindowsFormsSettings.KeyboardNavigationExtension属性为DevExpress TabPane、NavigationPane和应用程序中的所有ButtonEdit控件启用此操作。

C#

public Form1() {
InitializeComponent();
DevExpress.XtraEditors.WindowsFormsSettings.KeyboardNavigationExtensions = DevExpress.XtraEditors.KeyboardNavigationExtensions.All;
}

使用AllowButtonNavigation属性为特定ButtonEdit控件启用键盘导航。

其他选项包括:

  • 支持就地模式
  • 支持从右到左模式
  • 支持高级模式

WinForms TileView (Kanban)

最终用户现在可以用键盘聚焦平铺组页眉/页脚按钮,并使用箭头键进行左/右导航。

WinForms流程图控件

新版本改进了DevExpress WinForms Diagram控件中的键盘导航,用户现在可以使用以下键盘键:

  • Ctrl++ – 放大画布。
  • Ctrl+- – 缩小画布。
  • Ctrl+Space – 展开/折叠聚焦的容器。
  • F4 – 打开Properties窗口。

列过滤器弹出框

当用户打开Excel Filter弹出窗口时,弹出窗口会自动接收焦点,用户可以使用键盘在弹出窗口UI元素之间导航。

屏幕阅读器相关的增强功能

v24.1在DevExpress WinForms UI控件库中改进了可访问性,屏幕阅读器(如叙述者和NVDA)现在可以读出以下用户操作和属性:

  • 正在检查Data Grid Column Customization Menu中的项
  • 在DevExpress Accordion控件中展开/折叠一个项目
  • 在DevExpress网格自动筛选行中指定标准
  • 在Token编辑器中聚焦一个Token(一个屏幕阅读器读出Token)
  • 在DevExpress WinExplorer视图中聚焦组
  • 聚焦DevExpress网格新项目行的一个单元格
  • 在DevExpress CardView中导航卡片字段
  • TextEdit.Properties.AdvancedModeOptions.Label
  • TextEdit.Properties.NullValuePrompt

其他增强功能:

  • 当用户在表达式编辑器中输入不正确的表达式时,屏幕阅读器会发出错误消息。

DevExpress WinForms v24.1产品图集

  • 当用户使用集成的查找面板搜索特定信息时,屏幕阅读器会读出搜索结果的数量。

DevExpress WinForms v24.1产品图集

AccessKey和AcceleratorKey支持Ribbon UI和工具栏

Ribbon UI元素(Bar items、Ribbon页面、BackStageView、Group Caption按钮和Application按钮)现在公开以下与可访问性相关的属性:

注意:我们根据属性(如ItemShortcut)的值来设置这些属性。

其他增强功能
通过键/名称分配图像

图像选项包括一个新的ImageKey字符串设置,用它来指定一个图像的“名称”。与ImageIndex不同,在ImageIndex中添加或删除图像可以改变集合中现有图像的位置(需要更新ImageIndex属性),ImageKey属性标识图像,而不考虑其在集合中的位置(集合中的搜索是通过图像名称完成的)。

注意:mageKey优先于ImageIndex(如果两个属性都指定了)。

性能改进
改进Windows Forms进程外设计器

在过去的几个月里,官方与微软开发团队密切合作,微软最近发布了Visual Studio 2022更新,它在许多 .NET Core / .NET使用场景中提高了表单加载性能。

这些性能增强与任何DevExpress版本无关,因为它们是在Visual Studio核心级别实现的,微软已发布说明!

您可以从设计器启动(如果不需要所有的DevExpress WinForms组件同时在表单上)通过使用以下较小的包(类似DevExpress.Win.Grid、DevExpress.Win.TreeList、DevExpress.Win.Charts等)代替大的DevExpress.Win.Design包减少额外的1-2秒。


http://www.ppmy.cn/news/1539811.html

相关文章

python教程:python中的引用及其对引用的所有操作

在 Python 中,引用指的是变量指向对象的机制。Python 中的所有变量都是引用,即变量名并不直接存储对象的值,而是指向存储对象的内存地址。因此,多个变量可以同时引用同一个对象,从而共享对同一个数据的修改。 Python …

C#中,重载(overload) 重写(override)的应用说明

一.重载(overload)& 重写(override)定义说明 1.重载(overload)& 重写(override) 1.1重载(overload):指的是在同一个类中定义多个具有相同名称但参数列表不同的方法。通过参数列表的不同,编译器能够区分这些方法,并根据调用时传递的…

SpringBoot发送邮箱

一、导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency> 二、添加配置 application.yml文件 将username修改为自己的邮箱&#xff0c;password修改为…

【JavaScript】关于使用JS对word文档实现预览的一些思考

文章目录 mammothdocx4js mammoth 官网地址&#xff1a;https://github.com/mwilliamson/mammoth.js#readme 安装mammoth&#xff1a; npm i mammoth -S我们可以安装mammoth来实现上传的word文件的在线预览&#xff0c;我们以element的上传组件为示例&#xff1a; <temp…

Vue3子组件watch无法监听父组件传递的属性值

Vue3子组件watch无法监听父组件传递的属性值 1 问题描述2 引发原因3 解决方法 1 问题描述 假设子组件 ChildComponent 中有个属性a&#xff0c;默认值为 0&#xff0c;并且通过侦听器 watch 监听其数值变化。在父组件 ParentComponent 中调用子组件并将属性a的值赋为1传递给子…

finalshell连接navicat数据库

一、安装mysql数据库 这个安装在另外一篇里 超详细的finalshell安装数据库以及数据库的基本操作-CSDN博客https://blog.csdn.net/cfjbcg/article/details/142990671 二、连接 说明root这个用户连接&#xff0c;是有权限的限制的----》修改权限 use mysql pdate user set hos…

MySQL 篇-深入了解 InnoDB 引擎的逻辑存储结构、架构、事务原理、MVCC 原理分析(RC 级别、RR 级别)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 InnoDB 引擎 - 逻辑存储结构 2.0 InnoDB 引擎 - 架构 2.1 InnoDB 引擎 - 内存结构 2.2 InnoDB 引擎 - 磁盘结构 2.3 InnoDB 引擎 - 后台线程 3.0 InnoDB 引擎 - 事…

Java中字符串.split分割转List<String>判空问题

第一种分割直接分割&#xff0c;如果cph字符串为空&#xff0c;分割后cphList会>0 List<String> cphList Arrays.asList(cph.split(","));第二种判空后分割&#xff0c;如果cph字符串为空&#xff0c;判空后再分割cphList会0 List<String> cphList…