个人中心

联系我们

搜索
搜索 登录 免费注册
界面美化
业务优化
开发工具
图像管理
文档管理
Parasoft

新闻资讯

关注工具软件产品最新动态,了解软件开发行业新趋势。

DevExpress Universal v22.2 更新亮点解析(四):WPF 控件

原创
软件开发
来源:DevExpress
ui界面
DevExpress
WPF
2022-12-15
ui界面
DevExpress
WPF

WPF 控件 v22.2

.NET 6.0/7.0 - Windows

v22.2 需要 .NET 6 Visual Studio 2022 (v17.0) 或更高版本。

v22.2 支持.NET 7.0

 

这不会以任何方式影响 .NET Framework 客户— 我们的产品程序集将在此发布周期 (v22.2) 中继续以 .NET Framework 4.5.2 为目标。

 

 

主题

Windows 11 深色主题

我们新的 Windows 11 深色主题基于 Windows 11 深色模式。

 

 

Windows 11 深色主题 - WPF 控件、DevExpress

 

 

自动将主题从浅色模式切换到深色模式

我们添加了使用 Windows 应用程序模式的新系统主题,并自动将当前主题从浅色模式切换到深色模式(反之亦然)。此自动切换选项现在可用于以下 DevExpress 主题:

• Windows 11

• Windows 10

• Office 2019 / Office2016SE

• Visual Studio 2019 / 2017

 

数据网格

总摘要面板位置

我们新的TotalSummaryPosition属性指定摘要面板在视图中的位置。TableViewTreeListView CardView 现在可以根据要求在顶部或底部显示摘要面板。

 

在主从模式中,您可以将详细信息网格的TotalSummaryPosition属性设置为“顶部”以固定摘要面板,以便在用户滚动浏览各个详细信息行时它仍然可见。

 

 

数据网格:总摘要面板位置 - WPF 控件、DevExpress

 

运行演示   

要执行此演示,您必须先安装 DevExpress WPF 产品库

 

数据过滤 - 性能增强

以下 UI 元素的性能属性已得到增强:

• 过滤器编辑器

• 下拉过滤器

• 过滤面板

• MRU 过滤器列表

下图比较了发布周期之间的性能数据(过滤器 UI 元素包含 500 个项目)。

 

数据过滤性能图表 - WPF 数据网格、DevExpress

 

 

异步数据编辑

当使用服务器模式或即时反馈模式时,您现在可以在我们的WPF 数据网格 中合并异步数据编辑。DialogEditFormBehavior允许您异步执行以下操作:

 

• 初始化编辑表单对话框 ( CreateEditItemViewModelCommand )

• 验证更改或添加新行 ( ValidateRowCommand )

• 删除数据行 ( ValidateRowDeletionCommand )

XAML

<dxg:GridControl ...>

    <dxmvvm:Interaction.Behaviors>

        <dxg:DialogEditFormBehavior x:Name="EditFormBehavior" KeyProperty="Id"

            CreateEditItemViewModelCommand="{Binding CreateEditEntityViewModelCommand}"

            ValidateRowCommand="{Binding ValidateRowCommand}"

            ValidateRowDeletionCommand="{Binding ValidateRowDeletionCommand}"

            AllowCancelAsyncOperations="True">

            <!-- ... -->

        </dxg:DialogEditFormBehavior>

    </dxmvvm:Interaction.Behaviors>

</dxg:GridControl>

 

C

[Command]

public void CreateEditEntityViewModel(CreateEditItemViewModelArgs args) {

args.GetViewModelAsync = GetViewModel(args);

}

[Command]

public void ValidateRow(EditFormRowValidationArgs args) {

args.ValidateAsync = ValidateRow(args);

}

[Command]

public void ValidateRowDeletion(EditFormValidateRowDeletionArgs args) {

args.ValidateAsync = ValidateDeletion(args);

}

async Task<IEditItemViewModel> GetViewModel(CreateEditItemViewModelArgs args) {

// ...

}

async Task ValidateRow(EditFormRowValidationArgs args) {

// ...

}

async Task ValidateDeletion(EditFormValidateRowDeletionArgs args) {

// ...

}

 

未绑定列 - 自定义类型

我们新的UnboundDataType属性允许您显式设置未绑定的列类型。您现在可以指定以前不可用的类型,例如“TimeSpan”或“DateTimeOffset”。

 

XAML

<Window ...

    xmlns:dxg="https://schemas.devexpress.com/winfx/2008/xaml/grid"

    xmlns:sys="clr-namespace:System;assembly=mscorlib">

        <dxg:GridControl ...>

            <!-- ... -->

            <dxg:GridColumn FieldName="RemainingTime"

                UnboundDataType="{x:Type sys:TimeSpan}"

                UnboundExpression="[RequiredDate]-[OrderDate]"/>

        </dxg:GridControl>

 

树列表

子节点的异步加载

DevExpress WPF 数据网格中的 WPF TreeList 控件和 TreeListView 现在可以异步加载数据。TreeList 在后台线程中获取子节点,并在获取操作进行时显示等待指示器。

 

正如您想象的那样,异步子节点加载有助于防止不需要的屏幕“锁定”,并允许您提供响应速度更快的 WPF 解决方案。

 

 

子节点的异步加载——WPF TreeList、DevExpress

 

运行演示   

要执行此演示,您必须先安装 DevExpress WPF 产品库

 

性能改进

我们改进了 WPF TreeList 控件的BeginDataUpdate / EndDataUpdate实现。与以前的版本相比,批量修改现在的速度是原来的两倍。以下内部测试结果有助于说明此版本的性能优势(1,000 个项目添加到具有 1M 加载节点的 TreeList 控件)。

 

TreeList:性能图表 - WPF TreeList,DevExpress

 

 

数据编辑器

新路径编辑器

我们新的路径编辑器允许您和您的用户轻松指定文件或文件夹的路径。用户可以在编辑框中输入路径信息,浏览文件系统以选择文件/文件夹,或将文件/文件夹拖放到编辑器中。

 

功能包括:

• 可配置文件/文件夹浏览对话框(打开文件、保存文件、文件夹浏览器)

• 文件/文件夹路径验证

• 拖放文件/文件夹支持

• 显示系统和自定义图标

是的,您可以在 DevExpress 容器控件中使用 WPF 路径编辑器,例如我们的 WPF 数据网格、WPF 树列表等。

 

路径编辑器 - WPF 控件、DevExpress

 

运行演示   

要执行此演示,您必须先安装 DevExpress WPF 产品库

 

按钮 - 为异步操作提供视觉反馈

DevExpress WPF 按钮控件(例如,简单、下拉、拆分按钮)现在可以指示绑定的异步操作(任务)的进度。当操作正在进行时,按钮会显示等待指示符。这使您可以为数据密集型操作提供视觉反馈。

 

使用AsyncDisplayMode属性启用此功能。您可以将此属性设置为 'Wait' 以显示等待指示器或设置为 'WaitCancel' 'WaitCancel' 允许用户取消给定的操作。

 

 

异步操作的视觉反馈 - WPF 控件、DevExpress

 

运行演示   

要执行此演示,您必须先安装 DevExpress WPF 产品库

 

密码箱 - 密码显示

我们的 WPF 密码框附带了一个新的密码显示按钮。用户可以单击显示按钮来显示密码。长按按钮会显示密码,直到松开。

 

 

密码编辑器 - WPF 控件、DevExpress

 

运行演示   

要执行此演示,您必须先安装 DevExpress WPF 产品库

 

日期导航器 - 性能改进

日期导航器现在可以比以往更快地切换视图。在我们的WPF 调度程序控件(如果绑定到多月日期导航器)中导航日期时,用户会注意到显着的性能提升。

 

 

日期编辑器性能图表 - WPF 控件、DevExpress

 

 

文本编辑器的自定义蒙版

我们为所有 WPF 文本编辑器引入了一个新的CustomMask事件。当我们预定义的掩码类型不能满足您的业务需求时,处理此事件以合并自定义模式。

 

事件参数允许您获取输入文本、触发事件的用户操作(例如,插入、删除、退格等)以及操作本身的结果。您还可以处理编辑器选择的文本/插入符号位置,或完全取消编辑操作。

 

XAML

<dxe:TextEdit MaskType="Custom" CustomMask="OnCustomMask"/>

 

C

void OnCustomMask(object sender, DevExpress.Xpf.Editors.CustomMaskEventArgs e) {

    // Process user input.

    // This example demonstrates how to allow users to enter only Latin letters and

    // capitalize entered characters.

    if (e.ActionType == CustomTextMaskInputAction.Init || e.IsCanceled == true)

        return;

    var textInfo = CultureInfo.InvariantCulture.TextInfo;

    if (!Regex.IsMatch(e.InsertedText, @"^[a-zA-Z]+$") && e.ActionType == CustomTextMaskInputAction.Insert)

        e.Cancel();

    else e.SetResult(textInfo.ToUpper(e.ResultEditText), e.ResultCursorPosition);

}

 

运行演示   

要执行此演示,您必须先安装 DevExpress WPF 产品库

 

文本编辑中的新日期时间掩码

新的日期时间掩码可帮助您编辑DateTimeOffsetDateOnlyTimeOnly结构。使用这些掩码之一时,文本编辑器会自动将其 EditValue 转换为适当的类型(以便轻松地将其绑定到视图模型中的属性)。

 

DateOnly TimeOnly 掩码类型可用于 .NET 6+ 应用程序。

 

 

日期编辑 - 在代码中指定默认视图

我们新的SelectionView允许您在代码中指定默认视图(月、年、年或年范围)。


联系我们

周一至周日 8:00-23:00

免费热线

023-62585653

张经理:13082556879

罗经理:17558866126

许经理:13057566525

开发外包

ERP-一体化

小程序

企业微信客服

版权所有:重庆庚乾信息科技有限公司 ©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508

版权所有:重庆庚乾信息科技有限公司

©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508