DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
DevExpress WinForms控件v24.1日前已经全新发布,新版本进一步升级了富文本编辑器、电子表格组件功能等,欢迎下载最新版体验!
DevExpress v24.1正式版下载(Q技术交流:532598169)
富文本编辑器
可访问性 - 支持屏幕阅读器
DevExpress WinForms v24.1增加了对关键可访问性相关需求的支持,包括辅助技术(如屏幕阅读器)读取文档主体中的文本、图像的替代文本和名称、文本框内容、页眉和页脚的能力。
导出为可访问的PDF
在将Word文档导出为可访问的PDF文件时,官方扩展了对以下元素的可访问性相关支持:
- 目录标签
- 元数据字段
- Alt文本处理
- 表格
- 浮动对象
使用Adobe Acrobat Pro和PDF Accessibility Checker 2024 进行质量控制,新版本的测试文档成功地通过了PDF/UA兼容性和WCAG 2.1兼容性的验证。
当您指定PdfUACompatibility选项时,与可访问性相关的导出增强功能可以开箱即用:
C#
using System.IO;
using DevExpress.XtraRichEdit;
//...
using(FileStream stream =
new FileStream(resultFilePath, FileMode.Create, FileAccess.Write, FileShare.Read)) {
PdfExportOptions exportOptions = new PdfExportOptions();
exportOptions.PdfUACompatibility = PdfUACompatibility.PdfUA1;
richEditControl.ExportToPdf(stream, exportOptions);
}
装饰形状
DevExpress WinForms v24.1为Shape类添加了一个Decorative属性,将文档图形(图片、形状和图表)标记为装饰性的。装饰性的形状增加了视觉上的趣味,但它们不能提供信息。因此在生成可访问文档时,不需要为装饰性对象指定Alt Text(有意义的描述)。
数学方程
富文本编辑器现在保存文档时保留数学方程,您可以在DevExpress WinForms富文本编辑器中导入带有数学方程的Word文档,并将其保存为RTF和OpenXml (.docx/.docm)格式,而不会丢失内容。
注意:只有当源文档包含数学方程的备用图像时,数学方程才会被打印或导出为PDF。要抑制数学方程的导入,请将DocumentCapabilities.MathEquations属性设置为DocumentCapability.Disabled。
Gutter和镜像边距
DevExpress WinForms Rich Text Editor v24.1允许您指定沟边距-额外的空间,以确保绑定不会模糊打印页面上的文本。您可以指定沟位置(上、左、右)和边距大小,使用Document.GutterAtTop, SectionMargins.GutterPosition 和 SectionMargins.Gutter属性来解决特定的使用需求。
下面的代码片段向第一个文档部分添加了左gutter:
C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using DevExpress.Office.Utils;
//...
richEditControl.LoadDocument(@"Documents//Alice.docx");
Document document = richEditControl.Document;
Section firstSection = wordProcessor.Document.Sections[0];
var pageMargins = firstSection.Margins;
pageMargins.GutterPosition = GutterPosition.Left;
pageMargins.Gutter = Units.InchesToDocumentsF(1);
richEditControl.SaveDocument("Alice_formatted.docx", DocumentFormat.OpenXml);
新的DocumentMarginType属性允许您定义一个规则的或镜像的边距类型,如果在纸张的两面打印并希望绑定打印输出,则启用镜像页边距。
下面的代码片段启用镜像边距并指定一个额外的空格值:
C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using DevExpress.Office.Utils;
//...
richEditControl.LoadDocument(@"Documents//Alice.docx");
Document document = richEditControl.Document;
// Enable mirrored margins
document.MarginsType = MarginsType.Mirrored;
foreach (Section section in richEditControl.Document.Sections) {
var pageMargins = section.Margins;
// Set the value for mirrored margins
pageMargins.Gutter = Units.InchesToDocumentsF(0.5f);
}
richEditControl.SaveDocument("Alice_formatted.docx", DocumentFormat.OpenXml);
新的UI元素也可用。
图像导出API
v24.1包括新的跨平台API,用于将Word文档页面导出为图像,这个新功能允许您生成文档预览。使用新的API您可以将文档页面转换为光栅和矢量图像(PNG, JPEG, BMP,多页Tiff, emf),将它们保存为磁盘上的物理文件或获取图像流列表以便在代码中进行进一步处理,还可以设置图像背景颜色、修改输出图像分辨率或生成具有指定大小的缩略图图像。
新的API可以通过Document对象的RichEditDocumentServerExtensions.ExportToImage扩展方法获得。
请注意,RichEditDocumentServerExtensions类是在DevExpress.Docs.v24.1.dll程序集中定义的。将这个程序集添加到你的项目中,或者安装"DevExpress.Document.Processor" NuGet包来使用RichEditDocumentServerExtensions成员。
下面的代码片段将第一个文档页面导出为具有指定大小和JPEG格式的图像:
C#
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.Export.Image;
using DevExpress.Drawing;
richEditControl.LoadDocument(@"C:\Documents\Alice.docx");
//...
RichEditImageExportOptions options = new RichEditImageExportOptions();
options.Format = DXImageFormat.Jpeg;
options.PageRange = "1";
options.LargestEdgeLength = 1080;
richEditControl.Document.ExportToImage(@"C:\Documents\Image.jpeg", options);
将文档页面导出为SVG
全新的 Image Export APIs允许您将文档页面导出为SVG,使用RichEditImageExportOptions.Format选项将SVG设置为目标图像格式。
C#
RichEditImageExportOptions options = new RichEditImageExportOptions();
options.Format = DXImageFormat.Svg;
options.PageRange = "1";
richEditControl.Document.ExportToImage(@"C:\Documents\Image.svg", options);
SVG Export也可以从用户界面-打开打印预览对话框,单击导出到图像按钮,在图像选项对话框中选择SVG格式并完成文档导出。
SVG滚动光标
带有可滚动内容的DevExpress WinForms数据感知控件现在附带了与DPI无关的滚动光标(当用户按下鼠标中键时出现的光标),无论屏幕分辨率如何,都可以提供平滑和精确的导航。
Spreadsheet(电子表格)
可访问性增强 - 装饰形状
DevExpress WinForms v24.1为Shape类添加了一个Decorative属性,将文档图形(图片、形状和图表)标记为装饰性的。装饰性的形状增加了视觉上的趣味,但它们不能提供信息。因此在生成可访问文档时,不需要为装饰性对象指定Alt Text(有意义的描述)。
对齐和分布式文本对齐
DevExpress WinForms v24.1增加了对电子表格单元格内的水平对齐类型的支持,使用这些对齐选项的Excel文件可以打印并导出为PDF。
您可以使用Cell.Alignment.Horizontal属性在代码中指定水平对齐方式。
下面的代码片段指定了代码中的对齐方式:
C#
var workbook = new Workbook();
var worksheet = workbook.Worksheets[0];
Cell cellA1 = worksheet.Cells["A1"];
cellA1.Value = "Justified and top";
cellA1.Alignment.Horizontal = SpreadsheetHorizontalAlignment.Justify;
cellA1.Alignment.Vertical = SpreadsheetVerticalAlignment.Top;
workbook.ExportToPdf("Result.pdf");
按颜色排序和过滤
DevExpress WinForms Spreadsheet附带了增强的过滤器和排序相关功能,新版本添加了新的API,可以根据背景和字体颜色对工作簿数据进行排序和过滤,按单元格颜色过滤/排序的单元格范围也可以打印并导出为PDF。
排序API包括新的工作表,排序方法重载设计用于按字体颜色或填充设置(背景颜色和图案)对指定范围进行排序。
下面的代码片段跨两个单元格区域对单元格值进行排序——第一个单元格按红色字体颜色排序,第二个单元格按区域中第一个单元格指定的填充设置排序:
C#
spreadsheetControl.LoadDocument("sort-filter.xlsx");
Worksheet worksheet = spreadsheetControl.ActiveWorksheet;
// Sort cell range by font color
worksheet.Sort(worksheet["B2:B10"], Color.Red);
// Sort cell range by fill color
worksheet.Sort(worksheet["D2:D10"], worksheet["D2"].Fill);
若要按字体或背景颜色筛选单元格,需要对所需的单元格区域或表应用自动筛选器。完成后您需要从AutoFilter中获得所需的列,列集合并调用以下方法当中的一个:
- AutoFilterColumn.ApplyFillColorFilter(Color)
- AutoFilterColumn.ApplyFillFilter(Fill)
- AutoFilterColumn.ApplyFontColorFilter(Color)
下面的代码片段对单元格范围和表使用了这些方法:
C#
spreadsheetControl.LoadDocument("sort-filter.xlsx");
Worksheet worksheet = spreadsheetControl.ActiveWorksheet;
// Apply an auto-filter to a cell range and filter the first column by font color
worksheet.AutoFilter.Apply(worksheet["B1:B10"]);
worksheet.AutoFilter.Columns[0].ApplyFontColorFilter(Color.Red);
// Create a table, apply an auto-filter and filter the first column by fill color
Table table = worksheet.Tables.Add(worksheet["B12:B21"], true);
table.AutoFilter.Apply();
table.AutoFilter.Columns[0].ApplyFillColorFilter(Color.Red);
此外新API允许您跨筛选范围(当启用自动筛选时)对数据进行排序,并同时按其值/颜色对单元格进行排序(使用排序条件)。
导出单元格范围到SVG
在这个版本中增强了 CellRangeExtensions.ExportToImage 方法并添加了对SVG图像格式的支持。
CellRangeExtensions类是在DevExpress.Docs.v24.1.dll程序集中定义的,将此程序集添加到您的项目中或安装DevExpress.Document.Processor NuGet包来使用CellRangeExtensions成员。
C#
spreadsheetControl.LoadDocument("InvestmentPortfolio.xlsx", DocumentFormat.Xlsx);
Worksheet worksheet = spreadsheetControl.ActiveWorksheet;
worksheet.Range["B18:I30"].ExportToImage("cell_range_image.svg", ImageFileFormat.Svg);
SVG导出也可以从用户界面-打开打印预览对话框,单击导出到图像按钮,在图像选项对话框中选择SVG格式并完成文档导出。