DevExpress WinForms Controls v22.1 beta版来袭,上车

DevExpress v22.1 beta版本已经上线,让我们一起先睹为快,看看将会有哪些内容更新?

 新的WXI皮肤

我们的新WXI皮肤(主题)基于Windows 11。WXI皮肤附带五种调色板:“新鲜度”(默认),“黑暗”,“清晰度”,“清晰度”和“平静度”。

阅读博客文章

编辑控件

用于文本编辑器的新掩码 API – 创建高级掩码

我们将继续优化我们的掩码引擎,以便你可以完全控制 WinForms 应用中的数据输入。v22.1 包括对 WinForms 文本编辑器掩码 API 的以下更新。借助此新 API,您可以使用自定义输入逻辑创建可重用的掩码。

DevExpressWinForms 文本编辑器现在附带一个EnableCustomMaskTextInput方法。此方法允许您重写默认文本处理逻辑。该方法将 lambda 表达式作为参数:

  • C#
public void EnableCustomMaskTextInput(
    Action<CustomTextMaskInputArgs> onTextInput,
    object tag = null
)

onTextInput参数包括允许您获取输入字符串、操作类型、字符大小写、插入记号位置、选择等的属性。

  • C#
textEdit1.Properties.EnableCustomMaskTextInput(args => {
    // Process user input
});

使用其“SetResult”方法,您可以指定实际的编辑器文本,选择锚点和光标位置。要取消用户输入,只需调用“取消”方法。

  • C#
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 窗体

我们新的DirectX Form支持本机DirectX渲染和HTML和CSS标记。DirectX 窗体会自动为支持 DirectX 呈现的所有 DevExpress UI 控件激活 DirectX 模式。借助此新功能,您不再需要为每个单独的控件激活 DirectX 呈现。

阅读博客文章

HTML CSS 模板

ListBox, ComboxBox, Alert - HTML & CSS Markup Support

v22.1 引入了对 WinForms ListBox、ComboBox 和 Alert 控件的 HTML 和 CSS 标记支持。使用模板属性来定义可应用于项的 HTML-CSS 模板的集合。阅读以下博客文章:

处理以下事件以响应针对 HTML UI 元素的鼠标操作:

  • HtmlElementMouseOver
  • HtmlElementMouseMove
  • HtmlElementMouseOut
  • HtmlElementMouseClick
  • HtmlElementMouseDown
  • HtmlElementMouseUp

HTML Content Control - 存储库项目的输入标记

您现在可以换行存储库项目 repository items在<input>标记中。

 

“name”属性按名称引用存储库项目。“value”属性指定数据字段名称。

<div class='default-avatar-container' hidden='${HasPhoto}'>
    <input class='default-avatar' name='pictureEdit' value='${Photo}' />
    <a class='choose-photo' id='choose_Photo'>Choose a photo</a>
</div>
<div class='default-avatar-container avatar-container' hidden='${IsDefaultPhoto}'>
    <input class='avatar' name='pictureEdit' value='${Photo}' />
</div>
<div class='input-box'>
    <input class='input' name='emailEdit' value='${Email}'/>
</div>

我们的模板设计器现在包括“就地编辑器存储库”选项卡。打开此选项卡以创建要在 HTML 模板中引用的存储库项目。

HTML 模板设计器增强功能

我们的 HTML 模板设计器现在附带以下选项:

  • 区域折叠
  • 缩进参考线
  • 行号

TileView  - 项目自动高度

我们添加了一个新的TileViewOptionsHtmlTemplate.ItemAutoHeight选项支持由我们的渲染的磁贴的自动高度模式基于 HTML 和 CSS 的模板.在自动高度模式下,磁贴垂直拉伸以完全显示内容。

 

新的 CSS 属性

我们支持以下 CSS 属性:

  • 溢出包装
  • 空白
  • 背景图像
  • 背景位置
  • 背景大小
  • 背景重复

DataGrid

新筛选器 - InRange 和 InDateRange

我们向 WinForms 数据网格、树列表、透视网格、垂直网格和筛选器控件添加了两个新的范围筛选器:

  • InRange(value, from, to) filter 等效于 'from <= value && value < to'
  • InDateRange(dateValue, from, to) filter 等效于 'GetDate(from) <= dateValue && dateValue < AddDays(GetDate(to), 1)'

数据筛选 - 在自定义函数中设置操作数值的格式

我们添加了一个新的“ICustomFunctionDisplayAttributesEx”接口。使用其'GetOperandDisplayValue'方法设置操作数值的格式或为其提供自定义显示文本。

public string GetOperandDisplayValue(object value, string displayText) {
    return string.DisplayFormat("{0} days", value?.ToString());
}

筛选器控件 - 新事件和行为

新事件包括:

展前价值编辑事件现已过时。

重大变更:

T1083237- 用于在筛选器控件中创建和编辑筛选器表达式的文本编辑器现在接受与相应数据字段类型完全匹配的值。

Charting

图表设计器 - .NET 5 和 .NET 6 支持

Visual Studio IDE Chart Designer 现在与 .NET 5 和 .NET 6 完全兼容。

Dialogs

快速访问

我们的 WinForms 对话框现在显示“快速访问”,您可以在其中看到您最常浏览的文件夹的列表。

 

环境变量

现在,您可以在地址栏中键入环境变量(例如 %WINDIR%,%TEMP%),并将其扩展为其完整路径。

多文件夹选择

我们的文件夹浏览器对话框现在允许用户选择多个文件夹。设置其多选属性为“true”以启用此选项。

Heatmap

单元格选择

您现在可以选择热图单元格。“热图”控件支持单单元格和多单元格选择。使用选择模式属性以指定选择模式。若要获取所选单元格,请使用“所选项目”属性。

我们还添加了一个选定项更改选定项已更改事件。处理这些事件以响应选择更改。

MapControl

搜索面板自定义

您现在可以以相对单位指定搜索面板宽度/高度。此增强功能可在具有不同 DPI 缩放比例的显示器上保持一致的外观。

文档

重大变更:

T1068618- ShowSearchPanel 属性现已过时。

支持 PerMonitorV2 Scaling

我们解决了与混合模式 DPI 缩放相关的问题。我们更改了指定地图元素大小的度量单位。以下属性现在测量在DIP(与设备无关的像素).此改进允许地图元素在具有不同 DPI 缩放比例的显示器上保持其物理大小。

以下地图元素的大小现在以 DIP 为单位进行测量:

  • 小地图
  • 图例标记和文本

重大变更:

T1069120- 某些属性现在以 DIP 为单位进行测量

PDF 查看器

文档导航增强功能

转到书签目的地方法允许您导航到指定的书签或命名目标。

Pivot Grid

服务器模式和 OLAP 模式下的统一字段绑定 API

v22.1 更新数据绑定接口在服务器和 OLAP 模式下均受支持。

在 OLAP 模式下,您现在可以将数据绑定属性到数据源列绑定对象(将字段绑定到数据)。若要指定 OLAP 表达式,请将“数据绑定”属性设置为OlapExpressionBinding对象。

在服务器模式下,使用数据源列绑定表达式数据绑定分别是对象。

此更新还包括对以下条件运算符的支持:

  • IsTotal - 确定是否正在计算总汇总值。
  • FirstValue - 返回用于计算聚合值的第一行记录。

文档

富文本编辑器(Rich Text Editor)

水印

我们添加了用户在文档中合并水印的功能。为此,我们向功能区命令栏添加了两个新命令。

“水印”命令打开“水印”对话框,并允许用户创建和配置水印。“删除水印”命令从文档中删除所有水印。用户可以对整个文档或特定部分进行水印。

文档

电子表格(Spreadsheet)

收缩以适合

我们的 WinForms 电子表格控件现在支持收缩以适合对齐选项。启用后,此选项会自动减小文本大小以适合单元格。

 

增强的对话表单

我们重新设计了电子表格控件中使用的所有对话框。电子表格对话框现在使用我们的WinForms 布局控件.此增强功能使我们能够增强高 DPI 渲染质量,并在具有自定义本地化和字体的应用中保持表单缩放。

高 DPI 支持

支持 PerMonitorV2 Scaling

我们改进了以下 WinForms 控件,以保持混合模式 DPI 缩放:

用户界面自动化(UI Automation)

启用新的静态WindowsFormsSettings.UseUIAutomation选项以使用 Microsoft UI 自动化,该选项提供对桌面上大多数用户界面 (UI) 元素的编程访问,并允许自动测试脚本与 UI 交互。

我们在数据网格、TreeList、数据编辑器、功能区、条形图、折叠框、手风琴和停靠窗口中支持 UI 自动化模式,如网格、停靠、滚动、选择、表、展开/折叠等许多其他模式。

了解有关 Microsoft UI Automation 的更多信息

可及性(Accessibility)

自定义所有 DevExpress 控件的辅助功能信息

我们引入了一个新的静态“DXAccessible.QueryAccessibleInfo”事件,该事件用作单个入口点,用于自定义 WinForms 应用程序中所有 DevExpress 控件的辅助功能信息。如果在应用中使用来自多个程序集的控件(例如,数据网格、编辑器、图表、数据透视网格),则将为每个控件触发 QueryAccessibleInfo 事件。

  • C#
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 自动化属性并生成预期的事件。

重大更改

  • T1088753- 可访问的名称和角色已更改。
  • T1077760- UseTextForAccessability 控件样式现已禁用。

禁用所有 DevExpress 控件的辅助功能

新的静态'DevExpress.XtraEditors.WindowsFormsSettings.DisableAccessibility'属性允许您为WinForms应用程序中的所有DevExpress控件禁用'DevExpress'可访问性。

我们还向 WinForms 数据网格添加了一个新的静态“NotifyAccessibilityClientsOnMouseHover”选项。此选项允许你在 Windows 讲述人的“使用鼠标读取屏幕并与之交互”设置处于关闭状态时启用/禁用鼠标悬停时的辅助功能事件。

代码诊断(CTP)

现在可以在键入时检测 C# 代码错误。可以在代码编辑器和“错误列表”窗口中检查错误(如果有)。

 

安装“DevExpress.Win.CodeAnalysis”程序包以启用代码诊断。该分析器需要Visual Studio 2019或更新的版本,并且同时支持.NET Framework和.NET 5 +。

文档

简单做个总结:最大的变化就是强化了Html+Css的功能,誓死让CS界面BS化,目的也是让Winform保留其优势的同时也具备Html+Css的美观,这对Winform开发者也是好事,其他的中规中矩吧,很遗憾还是没能看到RichEditControl对中文的友好的bug修复,希望正式版早点出,并且有更多更新的内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值