开发WinForm程序时,如何拥有一个强大的编辑器功能?
DevExpress WinForms Subscription拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
DevExpress Winforms v20.2日前全新发布,此版本进一步增强图形图表功能、编辑器性能也得到显著提升,欢迎下载最新版体验!
图表
大数据图表
DevExpress Charts v20.2引入一个新选项-Series.AllowResample,激活此选项可最大程度地减少内存占用量,并以极快的速度为手动创建的系列渲染大量数据集。
Diagram
SVG导出
Diagram控件现在支持矢量(SVG)文件导出。
全新的列表项
Diagram控件包含一个新的容器项 - DiagramList,它将其子项排列在水平或垂直列表中。
度量单位
您可以启用一个新的ShowMeasureUnit选项,来在Properties Panel、Page Setup Window和Bottom Panel中显示度量单位。
其他增强功能
- v20.2为组织结构图的自动布局包括一个新的DiagramOptionsOrgChartLayout.IsCompact选项, 将此选项设置为false可以计算所有tip-over子树的偏移量,而不是单个层次结构级别的偏移量,这使得具有复杂层次结构的组织图(tip-over子树)更易于阅读和理解。
- 现在您可以按住鼠标中键并拖动以平移该图,此操作由AllowMiddleButtonDrag选项控制。
编辑器
新的DateTime偏移量编辑
新的WinForms DateTimeOffsetEdit控件使您可以显示和编辑DateTimeOffset值, 编辑器支持屏蔽输入。
掩码
v20.2附带经过全面检查的掩码引擎,从新的选项和设置到高级的掩码编辑器和数据注释支持,掩码引擎包括您需要的一切,以提供无错误数据输入逻辑的直观用户体验。
新的DateTimeOffset掩码
支持数据注释
通过代码优先数据源中的数据注释属性应用掩码。
C#
using System.ComponentModel.DataAnnotations; public class Employee { //allow only literals, first literal is automatically captitalized [RegExEditMask("[A-Z][a-z]+", IgnoreMaskBlank = true, ShowPlaceholders = false)] public string FirstName { get; set; } //DateTime in the short "MM/DD/YYYY" format [EditMask("d")] public DateTime HiredAt { get; set; } }
具有高级设置的掩码编辑器
掩码编辑器允许您选择预构建的掩码,从头开始创建新掩码或自定义预定义的表达式,保存自定义掩码以及应用高级掩码设置(区域性名称、使用高级插入符号等)。
新的API
在此版本中,可通过RepositoryItemTextEdit.MaskSettings属性使用掩码设置,RepositoryItemTextEdit.Mask选项现在已过时。
C#
textEdit.Properties.MaskSettings.DataType = typeof(decimal); textEdit.Properties.MaskSettings.MaskExpression = "###.##"; // or textEdit.Properties.MaskSettings.MaskManagerType = typeof(SimpleMaskManager); textEdit.Properties.MaskSettings.MaskExpression = "##-##-##";
新的'Configure' 方法允许您指定掩码类型、表达式并设置其他设置。 例如,以下代码将数字掩码与以下掩码条件一起应用:
- 允许用户使用“ 000.00”格式输入十进制数字;
- 隐藏不影响实际值的零(“ .9”替代“ 0.9”);
- 即使小数段为0(“ 110.”替代“ 110”),也会显示小数点分隔符。
C#
using DevExpress.XtraEditors.Mask; //Fluent API textEdit5.Properties.MaskSettings.Configure<MaskSettings.Numeric>(settings => { settings.MaskExpression = "###.##"; settings.AutoHideDecimalSeparator = false; settings.HideInsignificantZeros = true; }); //regular API var settings = textEdit5.Properties.MaskSettings.Configure<MaskSettings.Numeric>(); settings.MaskExpression = "###.##"; settings.AutoHideDecimalSeparator = false; settings.HideInsignificantZeros = true;
文本编辑器的“高级模式”(CTP)
新的“高级模式”为所有基于TextEdit的WinForms编辑器添加了许多有趣的选项(TokenEdit、HyperTextLabel和HyperlinkEdit控件除外)。 这些包括:
- 性能改进
- 嵌入式标签
- 表情符号
您的用户现在可以插入包含表情符号的字符串,或按“ Win +”,通过热键从Windows库输入表情符号。
为所需的编辑器启用新的“ AdvancedModeOptions.UseDirectXPaint”选项,以允许插入彩色表情符号。 否则,编辑器将显示标准表情符号的黑白版本。
- 动画插入符和选择
插入标记的移动和文本选择更令人赏心悦目。
文本选择颜色现在基于当前应用的皮肤。
要激活“高级模式”,请启用“ Properties.UseAdvancedMode”属性。
增强SvgImageBox功能
- 工具提示
- 上下文按钮
- 图像对齐
- 禁用单个项目
- 使用自定义外观设置保存SVG
支持Ctrl+Backspace
现在WinForms TextEdit控件及其后代支持Ctrl + Backspace热键组合,该组合将删除光标左侧的单词。
TokenEdit - 绑定到数据
您现在可以将Token Edit绑定到数据,使用新的“ DataSource”属性来指定带有token的描述和唯一值的字段。
C#
tokenEdit1.Properties.DataSource = categoryBindingSource; tokenEdit1.Properties.ValueMember = "ID"; tokenEdit1.Properties.DisplayMember = "Name";
TokenEdit - 单击时显示下拉列表
最终用户现在可以在编辑框中单击来显示带有tokens的下拉列表。
CameraControl,PictureEdit - 指定默认的相机设备和分辨率
此版本向TakePictureDialogShowing事件添加了新参数,以允许您指定默认的相机设备并配置其分辨率。
C#
void OnTakePictureDialogShowing(object sender, TakePictureDialogShowingEventArgs e) { e.ResolutionMode = ResolutionMode.Maximum; }
Take Picture对话框(独立并嵌入在Picture Edit控件中)将当前相机设备及其分辨率保留在系统注册表中,下次您打开Take Picture对话框时,将重新使用这些设置。
PictureEdit - 配置输出图像格式
新的“ OptionsEditDialog.OutputImageFormat”属性使您可以指定输出图像格式,默认输出图像格式为PNG。
PictureEdit - 图像裁剪操作的自定义宽高比
现在,您可以处理新的'CustomizeCropOptions'事件来自定义宽高比选项。
C#
void PeEditable_ImageEditorDialogShowing(object sender, ImageEditorDialogShowingEventArgs e) { e.Form.CustomizeCropOptions += (s, ea) => { CustomizeCropOptions(s, ea); }; } void CustomizeCropOptions(object sender, CustomizeCropOptionsEventArgs e) { var widescreen = new AspectRatioInfo(1.777f, "16:9"); var standard = new AspectRatioInfo(1.333f, "4:3"); e.AspectRatios.Clear(); e.AspectRatios.Add(widescreen); e.AspectRatios.Add(standard); e.DefaultAspectRatio = widescreen; }
ListBox - 项目自动高度
现在当基于模板渲染项目时,WinForms Listbox控件可以自动计算最佳项目高度。
DevExpress技术交流群3:700924826 欢迎一起进群讨论