DevExpress WinForms — 2021 Roadmap

WinForms Team Blog
24 February 2021

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

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

MapLine and MapPolyline elements will be able to display arrows.

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.

Layout Enhancements

A new LayoutAlgorithm property allows you to choose an algorithm that arranges sankey nodes. You can choose one of the predefined algorithms or create your own.

WinForms Reporting

This section contains WinForms-specific features only. See this blog post for the complete list of features we expect to implement in the Reporting Suite: DevExpress Reporting - 2021 Roadmap.

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)

PDF Export Options - PDF/UA and PDF/A-2a Support

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.

Report Designer - Report Design Analyzer Pane

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.

Report Designer - New Smart Tag Icon

  • The Expression Editor will allow you to set up expression bindings for various report control properties directly within its dialog window.

Report Designer - Updated Expression Editor

  • 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.

Report Designer - Updated Properties Panel

  • We’ll ship an updated toolbox with a new look & feel. We’ll also logically distribute report controls into sections.

Report Designer - Updated Toolbox

  • 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.

Report Designer - Localization Editor - CSV Import/Export

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.

Report Designer - Data Source Wizard - Mongo DB

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

This section contains WinForms-specific features only. Please review the following blog post for a complete list of features we expect to add to Office-inspired Suite: Office File API & Office-Inspired UI Controls – 2021 Roadmap.

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:

API Enhancements (v21.1)

We plan to implement new APIs that will allow you to:

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.

The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This roadmap and the features/products listed within it are subject to change. You should not rely on or use this information to help make a purchase decision about Developer Express Inc products.

Showcase Your Apps on DevExpress.com

Highlight your business app and share your development experiences with the DevExpress community. To include your app in our upcoming App Showcase, please forward an application screenshot to clientservices@devexpress.com and tell us which DevExpress products you currently use within your organization.