新的WXI皮肤
我们的新WXI皮肤(主题)基于Windows 11。WXI皮肤附带五种调色板:“新鲜度”(默认),“黑暗”,“清晰度”,“清晰度”和“平静度”。
阅读博客文章
用于文本编辑器的新掩码 API – 创建高级掩码
我们将继续优化我们的掩码引擎,以便你可以完全控制 WinForms 应用中的数据输入。v22.1 包括对 WinForms 文本编辑器掩码 API 的以下更新。借助此新 API,您可以使用自定义输入逻辑创建可重用的掩码。
DevExpressWinForms 文本编辑器现在附带一个EnableCustomMaskTextInput方法。此方法允许您重写默认文本处理逻辑。该方法将 lambda 表达式作为参数:
public void EnableCustomMaskTextInput(
Action onTextInput,
object tag = null
)
这onTextInput参数包括允许您获取输入字符串、操作类型、字符大小写、插入记号位置、选择等的属性。
textEdit1.Properties.EnableCustomMaskTextInput(args => {
// Process user input
});
使用其“SetResult”方法,您可以指定实际的编辑器文本,选择锚点和光标位置。要取消用户输入,只需调用“取消”方法。
using System.Globalization;
using System.Globalization.CultureInfo;
textEdit1.Properties.EnableCustomMaskTextInput(args => {
if(args.IsCanceled)
return;
// Converts user input to Title Case
var titleCaseResult = InvariantCulture.TextInfo.ToTitleCase(args.ResultEditText);
args.SetResult(titleCaseResult, args.ResultCursorPosition, args.ResultSelectionAnchor);
});
我们还使您能够将自定义蒙版应用于多个文本编辑器。以下文档描述如何注册自定义掩码在您的 WinForms 应用程序中。注册自定义掩码后,即可在我们的 Visual Studio 版编辑器中使用。
我们新的DirectX Form支持本机DirectX渲染和HTML和CSS标记。DirectX 窗体会自动为支持 DirectX 呈现的所有 DevExpress UI 控件激活 DirectX 模式。借助此新功能,您不再需要为每个单独的控件激活 DirectX 呈现。
阅读博客文章
ListBox, ComboxBox, Alert - HTML & CSS Markup Support
v22.1 引入了对 WinForms ListBox、ComboBox 和 Alert 控件的 HTML 和 CSS 标记支持。使用模板属性来定义可应用于项的 HTML-CSS 模板的集合。阅读以下博客文章:
处理以下事件以响应针对 HTML UI 元素的鼠标操作:
HTML Content Control - 存储库项目的输入标记
您现在可以换行存储库项目 repository items在标记中。
“name”属性按名称引用存储库项目。“value”属性指定数据字段名称。
我们的模板设计器现在包括“就地编辑器存储库”选项卡。打开此选项卡以创建要在 HTML 模板中引用的存储库项目。
HTML 模板设计器增强功能
我们的 HTML 模板设计器现在附带以下选项:
TileView - 项目自动高度
我们添加了一个新的TileViewOptionsHtmlTemplate.ItemAutoHeight选项支持由我们的渲染的磁贴的自动高度模式基于 HTML 和 CSS 的模板.在自动高度模式下,磁贴垂直拉伸以完全显示内容。
新的 CSS 属性
我们支持以下 CSS 属性:
新筛选器 - InRange 和 InDateRange
我们向 WinForms 数据网格、树列表、透视网格、垂直网格和筛选器控件添加了两个新的范围筛选器:
数据筛选 - 在自定义函数中设置操作数值的格式
我们添加了一个新的“ICustomFunctionDisplayAttributesEx”接口。使用其'GetOperandDisplayValue'方法设置操作数值的格式或为其提供自定义显示文本。
public string GetOperandDisplayValue(object value, string displayText) {
return string.DisplayFormat("{0} days", value?.ToString());
}
筛选器控件 - 新事件和行为
新事件包括:
这展前价值编辑事件现已过时。
重大变更:
T1083237- 用于在筛选器控件中创建和编辑筛选器表达式的文本编辑器现在接受与相应数据字段类型完全匹配的值。
图表设计器 - .NET 5 和 .NET 6 支持
Visual Studio IDE Chart Designer 现在与 .NET 5 和 .NET 6 完全兼容。
快速访问
我们的 WinForms 对话框现在显示“快速访问”,您可以在其中看到您最常浏览的文件夹的列表。
环境变量
现在,您可以在地址栏中键入环境变量(例如 %WINDIR%,%TEMP%),并将其扩展为其完整路径。
多文件夹选择
我们的文件夹浏览器对话框现在允许用户选择多个文件夹。设置其多选属性为“true”以启用此选项。
单元格选择
您现在可以选择热图单元格。“热图”控件支持单单元格和多单元格选择。使用选择模式属性以指定选择模式。若要获取所选单元格,请使用“所选项目”属性。
我们还添加了一个选定项更改和选定项已更改事件。处理这些事件以响应选择更改。
搜索面板自定义
您现在可以以相对单位指定搜索面板宽度/高度。此增强功能可在具有不同 DPI 缩放比例的显示器上保持一致的外观。
文档
重大变更:
T1068618- ShowSearchPanel 属性现已过时。
支持 PerMonitorV2 Scaling
我们解决了与混合模式 DPI 缩放相关的问题。我们更改了指定地图元素大小的度量单位。以下属性现在测量在DIP(与设备无关的像素).此改进允许地图元素在具有不同 DPI 缩放比例的显示器上保持其物理大小。
以下地图元素的大小现在以 DIP 为单位进行测量:
重大变更:
T1069120- 某些属性现在以 DIP 为单位进行测量
文档导航增强功能
新转到书签和目的地方法允许您导航到指定的书签或命名目标。
服务器模式和 OLAP 模式下的统一字段绑定 API
v22.1 更新数据绑定接口在服务器和 OLAP 模式下均受支持。
在 OLAP 模式下,您现在可以将数据绑定属性到数据源列绑定对象(将字段绑定到数据)。若要指定 OLAP 表达式,请将“数据绑定”属性设置为OlapExpressionBinding对象。
在服务器模式下,使用数据源列绑定和表达式数据绑定分别是对象。
此更新还包括对以下条件运算符的支持:
文档
水印
我们添加了用户在文档中合并水印的功能。为此,我们向功能区命令栏添加了两个新命令。
“水印”命令打开“水印”对话框,并允许用户创建和配置水印。“删除水印”命令从文档中删除所有水印。用户可以对整个文档或特定部分进行水印。
文档
收缩以适合
我们的 WinForms 电子表格控件现在支持收缩以适合对齐选项。启用后,此选项会自动减小文本大小以适合单元格。
增强的对话表单
我们重新设计了电子表格控件中使用的所有对话框。电子表格对话框现在使用我们的WinForms 布局控件.此增强功能使我们能够增强高 DPI 渲染质量,并在具有自定义本地化和字体的应用中保持表单缩放。
支持 PerMonitorV2 Scaling
我们改进了以下 WinForms 控件,以保持混合模式 DPI 缩放:
启用新的静态WindowsFormsSettings.UseUIAutomation选项以使用 Microsoft UI 自动化,该选项提供对桌面上大多数用户界面 (UI) 元素的编程访问,并允许自动测试脚本与 UI 交互。
我们在数据网格、TreeList、数据编辑器、功能区、条形图、折叠框、手风琴和停靠窗口中支持 UI 自动化模式,如网格、停靠、滚动、选择、表、展开/折叠等许多其他模式。
了解有关 Microsoft UI Automation 的更多信息
自定义所有 DevExpress 控件的辅助功能信息
我们引入了一个新的静态“DXAccessible.QueryAccessibleInfo”事件,该事件用作单个入口点,用于自定义 WinForms 应用程序中所有 DevExpress 控件的辅助功能信息。如果在应用中使用来自多个程序集的控件(例如,数据网格、编辑器、图表、数据透视网格),则将为每个控件触发 QueryAccessibleInfo 事件。
using System.Windows.Forms;
using DevExpress.Accessibility;
//...
public XtraForm1() {
InitializeComponent();
DXAccessible.QueryAccessibleInfo += OnQueryAccessibleInfo;
}
void OnQueryAccessibleInfo(object sender, object sender, DXAccessible.QueryAccessibleInfoEventArgs e) {
if(e.OwnerControl == gridControl1)
if(e.Role == AccessibleRole.Row)
e.Name = "my row text";
}
注意:“QueryAccessibleInfo”事件是一个弱事件。应将其处理程序声明为窗体类中的方法。否则,可能会发生垃圾回收。
常见增强功能
我们将'AccessibleName'、'AccessibleRole'、'AccessibleDescription'属性添加到以下类中:
我们还为以下组件引入了“AccesseRole”属性:
我们查看了数据网格、树列表、数据编辑器、功能区、条形图、折叠式琴、布局控件和停靠窗口,以了解可能的可访问性问题。这些 UI 控件现在具有正确的 UI 自动化属性并生成预期的事件。
重大更改
禁用所有 DevExpress 控件的辅助功能
新的静态'DevExpress.XtraEditors.WindowsFormsSettings.DisableAccessibility'属性允许您为WinForms应用程序中的所有DevExpress控件禁用'DevExpress'可访问性。
我们还向 WinForms 数据网格添加了一个新的静态“NotifyAccessibilityClientsOnMouseHover”选项。此选项允许你在 Windows 讲述人的“使用鼠标读取屏幕并与之交互”设置处于关闭状态时启用/禁用鼠标悬停时的辅助功能事件。
现在可以在键入时检测 C# 代码错误。可以在代码编辑器和“错误列表”窗口中检查错误(如果有)。
安装“DevExpress.Win.CodeAnalysis”程序包以启用代码诊断。该分析器需要Visual Studio 2019或更新的版本,并且同时支持.NET Framework和.NET 5 +。
文档
简单做个总结:最大的变化就是强化了Html+Css的功能,誓死让CS界面BS化,目的也是让Winform保留其优势的同时也具备Html+Css的美观,这对Winform开发者也是好事,其他的中规中矩吧,很遗憾还是没能看到RichEditControl对中文的友好的bug修复,希望正式版早点出,并且有更多更新的内容