First and foremost – thank you. Thank you for your continued support and your faith in DevExpress. As this roadmap will hopefully demonstrate, DevExpress remains fully committed to the WinForms platform and the needs of the desktop developer community.
In addition to the new controls and performance enhancements we expect to release in 2021, we hope to allocate significant resources to help bridge the gap between WinForms and more modern development platforms. High-DPI support, .NET Core, SVG icons, skins, DirectX Hardware Acceleration, MVVM Framework, Accessibility – will all play a key role in 2021 development strategy.
If you have any questions about this 2021 WinForms Roadmap, feel free to comment below or email us at support@devexpress.com. We will be happy to follow up and answer your questions.
Table of contents
- HTML & CSS Templates
- WinForms Common
- Data Grid
- Vertical and Property Grid Controls
- Tree List
- Gantt Control
- Ribbon & Toolbars
- Scheduler Control
- Accordion Control
- WinForms Editors
- Charts
- Maps
- Sunburst and Treemap Controls
- WinForms Reporting
- Office-Inspired UI Controls
HTML & CSS Templates
We expect give you the ability to "template" any control that displays items with HTML+CSS mark-up. This web-inspired technique will allow you to ditch dozens of properties and CustomDraw events. With HTML & CSS Templates, you will be able to define a data-aware template to specify the layout and size of your data items (Data Grid rows, Tile Control tiles, Scheduler appointments, etc.). To better illustrate what this offers the WinForms dev (and the WinForms platform), here’s a screenshot from our early internal spike for three templated LabelControls:
Our current plan includes two steps:
- Extend current HTML Tag support and introduce a new set of CSS attributes: margins, paddings, opacity, font attributes, border widths and styles, width and height, block and flex display styles, transform, transition, animation, interactivity and others.
- Add a control that can parse tags and CSS attributes supported by DevExpress.
With this in place, we will be able to support templates for practically any WinForms control that can bind to data.
This capability may be our biggest addition to the WinForms platform. As such, we are going to be cautious and not overpromise. We’ll have more to say in this regard over the coming months. Please stay tuned (and share this post with a friend – this feature is going to be AWESOME!)
WinForms Common
Unbound Column Enhancements
We plan to eliminate the need to assign UnboundColumnType
enumeration values to the "UnboundType" property of unbound Data Grid and Tree List columns. Instead of choosing one of these predefined values, we want you to be able to explicitly set a column type. This will allow you to specify previously unavailable types, such as TimeSpan or DateTimeOffset.
High Contrast Skin
Our raster skin set includes a High Contrast Skin that uses distinct colors to improve readability. In 2021, we expect to add a vector High Contrast Skin that uses Windows colors specified via the "Personalize | High contrast settings" menu.
RDP Optimization
As you know, the pandemic has increased the "work-from-home" trend. We expect to improve our WinForms products so they operate flawlessly when executed remotely (even at low connection speeds).
Enhancements for TextEdit / MemoEdit Advanced Mode
Released last year, Advanced Mode replaces the standard WinForms text box with a DevExpress-engineered editor. We expect to refine this feature throughout 2021 (custom paint support and syntax highlight engine).
Custom Expression Node in Filter Editor
Custom Expressions that cannot be converted into an expression node inside the Filter Editor will be displayed inside a custom text box. This will ensure no expressions are lost, and allow end-users to add custom expressions at runtime.
MRU Expressions in Filter Panel
The Filter Panel embedded in our data-aware controls will display a list of most recently used filter expressions.
Assign Custom Images with Image Picker
We expect to add a 3rd Image Picker tab that will act as a Windows Explorer - you will be able to browse folders on your machine, and drag-and-drop images from these folders directly onto controls on a form.
Default SVG image size in DevExpress Image Picker
Unlike raster images, SVG images do not have a fixed "default" size. Normally, DevExpress controls scale SVG images to 32x32 pixels when you insert the image via our Image Gallery. In the next release cycle, we plan to pre-set the SvgImageSize
property for controls that typically accept smaller images (context buttons, Simple Buttons, Grid headers, etc.) to values less than 32x32.
We will also extend our Gallery so you can quickly change SVG image colors for default Gallery icons.
Project Settings Page Update
We hope to introduce a new option to our Project Settings Visual Studio page. When checked, this option will ensure skin and palette selected by an end-user will be automatically applied at next application start.
WinForms Data Grid
Appearance Settings for Detail Tabs
We expect to add a separate Appearance section so you can modify colors and font settings for Data Grid detail tabs.
Conditional Formatting in Tile View
Conditional Formatting allows you to highlight Data Grid records that match criteria. Currently, this feature is available in classic Data Grid Views only: GridView and Banded Grid Views. We expect to support this feature for the Grid’s Tile View 2021: tiles will be able to change their appearance settings based on the format criteria you set.
WinForms Vertical and Property Grid Controls
Conditional Formatting
We expect to support conditional formatting rules within the Vertical Grid. You and your users will be able to highlight cell values that meet a criteria (value less than N, top N highest values, etc.).
Fixed Columns
Additionally, we plan to support Fixed Columns that are already available in a wide range of our data-intense WinForms controls (Data Grid, Dashboard, Pivot Grid, etc.).
Summaries
This year we expect to support summary items in our Vertical Grid Control. These items automatically calculate row summaries based on a selected condition.
Sort and Categorize buttons
The Property Grid control will include buttons to sort and categorize its rows - much like the standard Visual Studio property grid.
We also expect to support sort operations in our Property Grid control.
WinForms Tree List
Tile View
We expect to introduce a new View to our WinForms TreeList – wherein each record is presented as a Tile. Similar to the Data Grid Tile View, you will have access to a tile template and you’ll be able to bind data source fields to tile elements (and arrange these elements across the tile’s surface).
WinForms Gantt Control
Advanced Automatic Scheduling Settings
We expect to support Constraint Type and Constraint Date data fields.
Embedded Range Control
Gantt Control will embed a Range Control that provides a handy way to select a scheduled date range.
Enhanced Printing
This year we expect to overhaul our printing engine in the WinForms Gantt Control. We aim to eliminate such issues as blurry content noticeable when users zoom in a printed document, performance drops on large zoom factors, etc.
We also intend to support printing-related API seen in other DevExpress WinForms controls (OptionsPrint, AppearancePrint, etc.).
WinForms Ribbon & Toolbars
Empty Area Images in Ribbon
Our WinForms Ribbon will include an EmptyAreaImageOptions
property. You can use it to display an image within a free Ribbon region without using custom draw events.
WinForms Scheduler
Modern Outlook-inspired Elements
We expect to implement new and update existing Scheduler elements (headers, time ruler, appointments, etc.). This will allow you to better replicate UI elements introduced in the most recent version of Microsoft Outlook.
Variable Column Width for Day View
In 2021 we hope to modify the Scheduler Day View. At present, all day columns are of equal width. We plan to implement variable column width so that columns can automatically resize based on appointment count. You will also be able to manually specify relative width for Day View columns and override automatic resize operations.
WinForms Accordion
Allow AccordionContentContainer to Span the Accordion's Entire Height
Much like the NavBarControl’s SideBar View, AccordionContentContainers will be able to stretch across the entire Accordion Control and span the entire height of the control.
WinForms Editors
New Segmented Control
This new control will allow you to visualize enumerator values as a set of grouped buttons (each with a string caption and an optional image). This control will be featured in our new Property Grid View.
Context Buttons for Tokens
TokenEdit elements (tokens) will now support context buttons.
WinForms Charts
Memory Optimization
Our WinForms Chart Control will support new data adapters to minimize memory footprint when processing data.
2D Heat Map
You will be able to create heat maps with our Chart Control.
Customizable Empty Point
We plan to add variable empty point visualization. You will be able to choose how to display an empty point: as a gap, as span (like in Microsoft Excel), mark it by color or a special symbol, or simply ignore it.
WinForms Maps
Map Area Limits
Our WinForms Map control will allow you to limit the available map area.
MapLine and MapPolyline Arrows
Use an arrows to display MapLine
and MapPolyline
elements.
Even More Bing Services
We plan to extend the pool of supported data service providers, and support services such as Traffic Layer, Fleet Management API and Distance Matrix API.
WinForms Sunburst and Treemap
New Elements
We expect to add title and legend elements.
WinForms Sankey Diagram
Selection Support
Elements in the Sankey Diagram can now be selected.
WinForms Reporting
Visual Studio Report Designer for .NET 5 Apps
The number one priority for us is to offer you the best possible user experience when using the DevExpress Visual Studio Report Designer for apps targeting .NET 5. Our goal is to deliver feature parity between our current .NET Framework Report Designer and our .NET 5 designer.
Of course, we also want to give you a straightforward way to migrate your reports to .NET 5.
Export To PDF - Tagged PDF
You’ll be able to produce tagged PDF documents so that impaired users can better perceive information within PDF reader applications. Our updated PDF export engine will allow you to export documents that conform to the following:
- PDF/UA standard
- PDF/A-1a, PDF/A-2a, PDF/A-3a standards (Level A conformance)
Runtime Report Generation - New Fluent API
We will engineer a Fluent API for those who prefer to create reports at runtime. Our goal is to significantly reduce the amount of code required to create tabular reports with multiple bands.
XtraReport myTablereport = ReportLayoutFluentBuilder
.Report()
.WithReportUnit(reportUnit: ReportUnit.HundredthsOfAnInch)
.PageHeader(builder => {
builder
.Table()
.AddRow("Company", "City", "State", "Orders", "Average Sale Amount")
.Build();
})
.Detail(builder => {
builder
.Table()
.AddRow(new[] { "[Name]", "[City]", "[State]", "[CustomersOrders_1][].Count()", "[CustomersOrders_1][].Avg([TotalAmount])" }, asExpression: true)
.Build();
})
.Build();
}
Report Designer Enhancements
Report Design Analyzer
The DevExpress Report Designer will scan your report for changes (on-the-fly) and help you avoid design-related mistakes that may affect document appearance and generated export files. We will rename the Script Errors panel to Report Design Analyzer. You will still be able to view script errors within this panel, but we will extend it with the following new capabilities:
- The panel will point you to report layout issues and list actions you can take to avoid potential errors.
- The panel will display runtime-related errors that can occur during the document creation process
The Report Design Analyzer panel will also be available within the Web Report Designer.
UX Enhancements
We will extend our Visual Studio Report Designer/Desktop End-User Report Designer and improve the report design process. Enhancements will include:
- New Smart Tag icons for both report control and the report itself.
- The Expression Editor will allow you to set up expression bindings for various report control properties directly within its dialog window.
- The Properties Panel UI will reflect a property’s data-bound state. An update will give users the ability to distinguish if a property supports data binding or if it is already bound to a data column.
- We’ll ship an updated toolbox with a new look & feel. We’ll also logically distribute report controls into sections.
- Scripts Auto-Complete functionality will be reworked and will function in a more “intelligent” manner.
Localization - Translation Strings CSV Import/Export
You’ll be able to export report localization strings to a CSV file and use it to translate report elements with the help of third-party services. You will also be able to import translations within a CSV file back to a report.
Parameters Panel Customization API
We will engineer an API that allows you to generate your own parameters panel layout based on report parameters. This new API will address the following usage scenarios:
- Customizing parameter editors
- Changing parameter editors location and size
- Changing parameter description labels location and size
- Parameter editors grouping
- Conditional visibility of parameter editors
PDF Content - Embed PDFs into Report Pages
The XRPdfContent
report control will ship with a new operational mode. The control will offer the ability to scale down a single-page PDF and embed it into a report band as a picture.
Note: Please let us know if you need to embed multiple PDF pages into a report in this manner. Usage scenario details will help us design the best possible solution.
Data Source Enhancements
Excel Data Source - Binding by a Sheet Index
You will be able to bind reports directly to Excel files with multiple sheets via our new ExcelWorksheetSettings.WorksheetIndex
property:
ExcelDataSource excelDataSource = new ExcelDataSource(){
FileName = path;
};
// Select a required worksheet.
ExcelWorksheetSettings excelWorksheetSettings = new ExcelWorksheetSettings() {
WorksheetIndex = 1
};
// Specify import settings.
ExcelSourceOptions excelSourceOptions = new ExcelSourceOptions() {
ImportSettings = excelWorksheetSettings,
SkipHiddenRows = true,
SkipHiddenColumns = true,
UseFirstRowAsHeader = true
};
excelDataSource.SourceOptions = excelSourceOptions;
// Fill the data source
excelDataSource.Fill();
New MongoDB Data Source
You will be able to bind reports to a MongoDB database. The new data source will allow you to select the desired database name, document collection name, and define the appropriate server-side filtering clause.
FederationDataSource - Fluent API for Transformation-Based Queries
The Federation Data Source allows you to flatten (or expand/denormalize) your data source structure via a Transformation option: you can transform inner elements of your data source (such as arrays and lists) into a row set. We will engineer Fluent API for the runtime creation of Transformation-based federated queries.
WinForms Office-Inspired UI Controls
Word Processing Document API & Rich Text Editors
RC4 CryptoAPI Encryption (v21.1)
Our upcoming release will allow you to import and export RC4 CryptoAPI encrypted DOC files. We will use our own RC4 CryptoAPI encryption implementation to encrypt DOC files created with our API. RC4 CryptoAPI will be the default encryption method for binary files (instead of RC4 - see Breaking Change T973019).
New Document Elements (v21.1 and v21.2)
Charts
We will use our Spreadsheet Chart API to support charting across our Word processing components. You will be able to create 2-D and 3-D charts in code, apply chart styles, and format individual chart elements as needed.
ActiveX Controls
Our new APIs will allow you to access ActiveX controls in code, obtain associated properties (type, name, and ProgID), and remove these controls from a document when necessary.
Watermarks
You will be able to import and export documents with watermarks. Watermarks will be displayed, printed, and exported to PDF. In the second half of 2021, we expect to introduce new APIs to manage watermarks in code.
Table Formatting Enhancements (v21.1)
We will add a new table row option - “Repeat as header row at the top of each page”. You will be able to toggle this feature in code or via the Rich Text Editor's UI.
Performance Enhancements (v21.1)
We expect to significantly improve initialization performance for our WinForms and WPF Rich Text Editors.
Spreadsheet Document API & Spreadsheet Controls
RC4 CryptoAPI Encryption (v21.1)
Our upcoming release will allow you to import and export RC4 CryptoAPI encrypted XLS files. We will use our own RC4 CryptoAPI encryption implementation to encrypt XLS files created with our API. RC4 CryptoAPI will be the default encryption method for binary files (instead of RC4 - see Breaking Change T973019).
Excel 2016 Charts – Enhancements (v21.1)
We expect to address the following limitations related to our current Excel 2016 chart implementation:
Implement interface elements for our Spreadsheet controls to help insert Excel 2016 charts and change chart type as necessary.
- Introduce support for sunburst and treemap charts. Our Spreadsheet UI controls will render these charts. You will also be able to print and export sunburst and treemap charts to PDF.
Accounting Number Format Alignment (v21.1)
As you may already know, if you apply the built-in Accounting number format to a cell value, Microsoft Excel will display the currency symbol on the left and numbers on the right. That’s because this format code contains an asterisk followed by a space:
_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)
The asterisk tells Excel to repeat the space character until the cell's width is populated. We’re going to support this alignment behavior for our Spreadsheet UI controls (to replicate Microsoft Excel behavior).
Progress Indication (v21.1)
Our Spreadsheet control will ship with a built-in Progress Bar. This Progress Bar can be used to indicate the progress of lengthy operations (file load and save operations, export to PDF and HTML, etc.).
We’ll also add an IProgress<T> parameter to the following asynchronous methods to implement progress notifications:
- Workbook.LoadDocumentAsync;
- Workbook.SaveDocumentAsync;
- Workbook.ExportToPdfAsync;
- Workbook.ExportToHtmlAsync.
API Enhancements (v21.1)
We plan to implement new APIs that will allow you to:
- Replace an existing worksheet picture with a new picture;
- Export a cell range to an image (available only for Spreadsheet Document API). You’ll need an active license for the DevExpress Office File API Subscription or the DevExpress Universal Subscription to use this API in production code.
Performance Enhancements (v21.1)
We expect to significantly improve initialization performance for our WinForms control.
Accessible PDF Export (v21.2)
We’re going to enhance PDF export in our Spreadsheet and Word processing products to produce accessible PDFs for use by individuals with disabilities.
Your Feedback Matters
As always, we welcome your feedback. Let us know what you think in the field below or submit a support ticket via the DevExpress Support Center if you need to discuss a specific business need.