WPF Controls 2020 Roadmap - Your Vote Counts

WPF Team Blog
10 December 2019

It's that time of year again - time to collect feedback and refine our 2020 Roadmap. If you're currently using our WPF product line or expect to do so next year, please take a moment to review our un-official 2020 Roadmap and share your thoughts with us. We expect to publish our official 2020 WPF Roadmap early next year.

And don’t forget to check out the following blog posts for information on other DevExpress WPF-specific products:

Table of Contents

.NET 5 Support

.NET 5 is scheduled for release in November 2020. You can expect full .NET 5 support across our WPF product line around this date. We also hope to release beta versions built for .NET 5 a few months in advance.

.NET Core 3.0 and 3.1

We introduced official support for .NET Core 3 in our v19.2 release cycle. In 2020, we will extend the capabilities of .NET Core 3 designers and incorporate enhancements that simplify app deployment.

WPF Project Templates

Visual Studio's New Project dialog will feature project templates for .NET Core. Basic templates will be available as a minor update in our v19.2 release cycle. In 2020, we will extend this list with other templates such as a Dependency Injection application.

Designer Extensions

Since .NET Core uses a new surface isolation architecture for the WPF designer, most of our designer extensions are currently available only for .NET Framework. We are working on the following designer features for .NET Core:

  • Smart Tags.
  • Selection of non-visual elements (Data Grid columns, Toolbar & Ribbon items).
  • Applying application themes from App.config to all designer previews.
  • Configuration wizards (Chart Designer, Diagram Designer, Feature Browser for the Data Grid).

Other Plans

.NET Core 3 remains one of our top priorities for 2020. We will continue to work on our .NET Core offering. We hope to improve performance, simplify the deployment process, and create additional learning resources. Your feedback will help us focus on areas that require attention.

New Controls and Features - We Need Your Feedback

We are considering the following new controls and features for our WPF product line:

  • Image Editor;
  • Syntax & Code Editor;
  • UI Testing Support.

We can begin work on these products/features in 2020, but this will affect the features we incorporate into existing WPF controls. What is more important for your applications? Please tell us what's most important to you and your team below?

WPF Image Editor

Unlike the existing ImageEdit, the Image Editor is a standalone control built specifically to preview and edit images. It may include the following image editing and presentation features.

Image Viewer features:

  • Zoom and Scroll;
  • Pan;
  • Touch gesture support.

Image Editor features:

  • Rotate;
  • Resize;
  • Crop;
  • Copy/Paste image regions;
  • Draw text;
  • Draw custom shapes;
  • Undo/Redo.

The Image Editor can also include a Toolbar or Ribbon interface integrating its viewing and editing functionality.

WPF Syntax & Code Editor

A text editor to help you visualize code files, edit configuration files/scripts, or view logs. It may include the following features:

  • syntax highlighting;
  • folding regions;
  • built-in syntax highlighting for popular file formats and programming languages;
  • dynamic suggestions.

UI Testing Support

DevExpress controls support the UI Automation framework for screen reader tools. This allows you to create basic UI tests with any testing tool that uses UI Automation to access visual elements. However, since screen reader tools only use a portion of the UI Automation API, some test cases are not supported out-of-the-box and need to be implemented with custom code.
We can extend support for UI Automation in our most popular controls (such as the Data Grid, Data Editors, and Ribbon). In addition, we can make certain that DevExpress WPF controls are fully compatible with the Appium and WinAppDriver approach recommended by Microsoft.

WPF Data Grid

Virtual Sources - Data Editing

Infinite and Paged sources will support data editing via Edit Entire Row. End-users will be able to press the Update button after entering cell values to post changes to a data source asynchronously.

Virtual Sources - Grouping

We expect to deliver industry-first data grouping support for virtual data sources. Though not a trivial task, we've researched options and believe we can add data grouping support for Infinite data sources in 2020. To reduce the number of records needed on the client, every group row will display a button that loads more rows at the bottom.

Virtual Sources - Miscellaneous Enhancements

We hope to remove a number of limitations currently imposed by Infinite and Paged sources:

  • Keeping the selected row and scroll position after a refresh.
  • Updating individual rows.
  • Calculating custom Total summaries.

WPF Data Grid and TreeList - Common Features

New Filter Panel

This feature was initially planned for 2019 but we postponed it to polish Excel-Inspired filters and enable them by default. The new Filter Panel will display separate tokens with filters for each column (making it easier to read and manage).

If an applied filter does not fit within the screen area, detailed information will be displayed within a popup.

Conditional Formatting - Disable Cells and Rows

New Conditional Formatting rules will allow developers and end-users to disable rows and cells (or make them read-only) based on a specific condition.

Automatic Column Best Fit

Our WPF Data Grid and TreeList can both calculate the optimal width for columns based on header text and content. To do this, you either need to call the BestFitColumn/BestFitColumns method or click a corresponding item in a column's context menu. With this new feature, the Data Grid and TreeList will automatically calculate optimal width for columns when loading data or when underlying data changes. To make this possible with large data sources, we will research possible optimizations for the Best Fit process and introduce a new mode wherein optimal width is calculated based on visible data and recalculated again during scrolling.

Optional Features

WPF Tree View

At present, you can customize our TreeList so that it looks like a Tree View - hide headers and row indicators, disable cell navigation, configure horizontal scrolling. However, customizing the TreeList requires time and knowledge of our API. We can provide a separate control that looks like a Tree View and inherits the best TreeList features - performance, formatting API, and rich filtering options.

New Summary Editor

The Summary Editor within our WPF Data Grid and TreeList does not display custom summary items, and does not allow end-users to customize summary for selection and formatting at runtime. We can rewrite the Summary Editor to support all these features.

Search Panel Suggestions

We can enhance the Search Panel in the Data Grid and TreeList so that it displays a drop-down window with the following suggestions:

  • previous search queries;
  • search syntax suggestions (e.g., type ":" to search in a specific column);
  • unique values from specific columns;
  • user-defined custom items.

WPF Pivot Grid

New Filter Panel

After implementing the new Filter Panel for the Data Grid and TreeList controls, we will enable it for the Pivot Grid. The new Filter Panel will contain separate tokens with filters for each column (instead of displaying the entire filter string as plain text).

Customization Form Search

The Pivot Grid's Customization Form will display a search box that allows end-users to filter the list of available fields.

Summary Filter Popup

Data Field headers will display a filter button that invokes a popup window that allows end-users to configure summary filters.

Context Menus for Summary Type and Group Interval

New context menu items will allow end-users to change summary type and group interval at runtime.

WPF Data Editors

Date Navigator Enhancements

We expect to rewrite the visual portion of our Date Navigator so that it is more customizable and lightweight. We will also introduce the following features:

  • Touch support.
  • An API to define available views (e.g., show only months and years).
  • Improved keyboard navigation.
  • An API to define the Date Navigator's visible range.

TrackBarEdit Enhancements

TrackBarEdit will draw labels alongside ticks and display a tooltip with the current value when a user drags the thumb.

WPF Themes

Visual Studio 2019 Themes

We will release a set of new themes inspired by Visual Studio 2019.

Appearance Properties Support

We hope to simplify appearance customization for our most popular controls (Data Grid, Data Editors, Ribbon, Toolbars). We expect to support the following appearance properties:

  • Background;
  • BorderBrush;
  • BorderThickness;
  • CornerRadius;
  • Padding.
This is not a trivial task because many of these controls have unique requirements. We plan to investigate available options and will do our best to avoid breaking changes and performance issues.

Fluent Design - In-App Acrylic Effect

In addition to Background Acrylic implemented in v19.2, we hope to add the In-App Acrylic effect in 2020 (reveals elements or a background image beneath the topmost control).

Fluent Design - Reveal Highlight Effect Enhancements

We expect to add the support for dark and white themes to our Reveal Highlight API and move it out of CTP.

Theme Designer - .NET Core 3 Support

You can already use theme libraries built against .NET Framework in your .NET Core apps (see .NET Core 3 Support). In 2020, we hope to support themes built against .NET Core 3 and run Theme Designer previews under .NET Core.

WPF Ribbon and Toolbars

Search Item

The Search Item automatically retrieves Ribbon and Toolbar items from your application and allows end-users to locate these items by name or keyword. You can exclude specific items from search results or define custom items that will only appear within the Search Item. Search Item can be displayed in the window's title bar or next to Ribbon's page headers.

Bar Item Appearance Options

Ribbon and Toolbar items will include an API to customize control appearance (background, foreground) for Normal, Checked, and Hover states.

Ribbon - Backstage View Enhancements

Ribbon's Backstage View will support glyphs for individual items and will be able to display items at the bottom.

WPF Scheduler

New Timeline View Layout

We hope to rewrite the visual portion of the Timeline View and introduce new dynamic time scales, per-pixel horizontal scrolling, and smooth zoom to the mouse pointer. The overall experience will be similar to scrolling and zooming in the Gantt control:

Unlike the Gantt control and our current Timeline View implementation, the new Timeline View will limit horizontal scroll range depending on the current zoom factor. For example, when the time scale displays days, you will be able to scroll within a month before zooming out or switching to the next month in the Date Navigation Panel. Limiting the horizontal scroll range will help us calculate the resource height for the entire range so that resources don't change height during scroll operations.

In addition to improved zooming and scrolling, the new Timeline View layout will provide a more flexible way to control resource height. You will be able to define the minimum and maximum height for your resources, and the Scheduler will calculate actual height for each resource (based on appointments contained within the displayed range). If appointments exceed the maximum resource height, resources will display a button that expands the resource even further.

On-Demand Data Loading

With this feature, our WPF Scheduler will request data only for the visible range and will make additional queries after scrolling. Loaded data will be cached to reduce the number of requests.

scheduler.FetchAppointments += (d, e) => {
    e.AppointmentsSource =
        from x in dbContext.Appointments
        where (((x.QueryStart >= e.Interval.Start && x.QueryStart < e.Interval.End) || (x.QueryEnd >= e.Interval.Start && x.QueryEnd < e.Interval.End))
                || (x.QueryStart < e.Interval.Start && x.QueryEnd >= e.Interval.End))
                && e.ResourceIds.Contains(x.ResourceId)
        select x;
};

On-demand data loading can significantly increase the loading speed for applications with large data sources.

Appointment and Time Region Filtering

Our WPF Scheduler will include an API that allows you to dynamically hide appointments and time regions. You will be able to handle events to describe your custom filtering logic.

scheduler.FilterAppointment += (d, e) => {
    e.Visible = object.Equals(e.Appointment.StatusId, 1);
};

In addition, the new FilterString and FilterCriteria properties will help you bind your Scheduler to the Filter Editor or to Filter Elements for advanced filtering scenarios.

Optional Major Features

Year View

A new view that displays the entire year with months at the left side and weekdays on top. This view will help you visualize and overview holidays or major events for a given year.

One Month View

A new view that displays a single month. In this view, weeks can contain a different height (based upon the number of appointments contained within the week). If all weeks fail to fit the screen, a vertical scroll bar will be displayed.

Outlook-Inspired Tabbed Interface for Resources

With this feature, resources can be displayed as tabs and merged to display appointments from different resources on the same canvas.

Optional Minor Enhancements

Support for Multiple Time Indicators

The WPF Scheduler will be able to display multiple Time Indicators simultaneously and will include an API to control position.

Editing Restrictions

The WPF Scheduler will include an API to make elements read-only:

  • read-only appointments will display a corresponding icon;
  • read-only time regions will prevent end-users from creating or moving appointments into them;
  • read-only resources will make all associated appointments read-only.

Support for Holidays

You will be able to define named holidays within our WPF Scheduler. Holiday names will be displayed in column headers or as read-only all-day appointments.

New Appointment Window

We can redesign our existing Appointment Window to make it more customizable and user-friendly. One of our ideas is to display recurrence editors on the same form - much like it's done in the Windows Mail app.

WPF Diagram

List Item

A new container item that arranges its child items in a list. End users can add, remove, and reorder items in this list.

Text Tool

A new tool that allows you to add labels to a diagram by clicking an empty region and entering the appropriate caption via the keyboard.

WPF Gantt

Backward Scheduling

The Backward Scheduling API will help you manage projects that have a specific deadline. You will be able to plan backwards, scheduling each task from the deadline to the beginning of the project.

Printing - Research

We will investigate whether we can use our existing Printing classes to print our Gantt control. If existing Printing classes are insufficient, this feature will likely be postponed.

Optional Features

Task Splitting

You will be able to split a task into as many sections as needed to temporarily interrupt work.

Resources

You will be able to assign resources to tasks and specify the percentage of time a resource spends on a task. The Gantt control will automatically schedule tasks based on the resource availability.


As always, we thank you for your continued support and for choosing our WPF products for your development needs. We look forward to your feedback.

13 comment(s)
Arvind Dhiman
Arvind Dhiman

Would like DevExpress to work on increasing support for testing WPF controls using any automation tool "Appium and WinAppDriver" and/or "TestStack White".

We have a fairly big application using WPF controls like Tree List, Pivot Grid, Data Grid, Gantt Chart, Chart Controls and etc. and struggle a lot while automating them, because of limited support, our automation coverage is very low.

11 December 2019
Robert Howell
Robert Howell

It would be nice to have the grid control align more closely with the WinForms grid control.

Examples:

Add the other view types (Business Card, Tile, etc.)

Incorporate the editor local and global repositories so they can be configured once and reused.

Incorporate the view repository so they can be switched between easily.

Include the full designer, not just the Feature Browser.

Thanks for listening.

11 December 2019
Mir123
Mir123

I would love to have some kind of UI automation support for the WPF controls. We are using Testcomplete for other projects, but we were not able to get it to work with DevExpress controls. So please add support for UI testing!

(I am not bound to use Testcomplete, as long as it works out of the box I would be happy to switch to another testing tool if needed).

11 December 2019
Dalibor Stys
Dalibor Stys
Thank you for image editor and for themes enhancements! Is there already possibility to apply themes to splashscreen as it is possible in winforms (published in roadmap)?
12 December 2019
Customer88957
Customer88957
Another vote for improved UI automation from me - we use TestComplete too.
12 December 2019
Noufal Aboobacker 1
Noufal Aboobacker 1

read-only visual state is required for all wpf Editors.

The most important missing peace in the editors line up is read only read-only visual state. If a control is read only then there must not be any drop down buttons or clear buttons just a display and there must be a way to make the entire view read only. Now to achieve this we have to make lots of tweaks. 

Five months ago on my ticket T739459 I was told that there is a plan for  read-only visual state. 


12 December 2019
Stephen J White
Stephen J White

@Alex


I'm impressed with all of the things that you posted here, and am excited to see you still have so many great ideas and possibilities for the WPF line. I'm especially happy to see the code editor control and would be happy to have that included in future versions! And seeing a Visual Studio 2019 theme would be awesome! I hope it supports color palettes. :)


I'm not sure if it will ever happen, but it would be great if you could some day have a vertical version of the Grid Control for WPF. I have had to use a few work arounds to get something similar but unfortunately it just doesn't work as well as the one from Winforms. :( If you guys ever get around to adding one for WPF, it would be greatly appreciated. 

And last but not least, I have brought this up before, but it would be great if you could some day add data annotation validation support for the regular editors. The data layout control and grid control's support of them saves a lot of time and I feel like it requires a lot of extra plumbing to implement the same functionality for regular editors. Or at least having some kind of special DX markup extension that provides it would be good enough, I suppose. 

12 December 2019
Alex Chuev (DevExpress)
Alex Chuev (DevExpress)

@Arvind, Mir & Customer88957:
Thanks for sharing your feedback about UI testing tools.

@Robert:
You can create WPF styles to reuse editor settings in the Data Grid. Are you looking for something different?
I'm also interested in your usage scenarios for the full Data Grid designer and new view types. Feel free to contact me at wpfteam@devexpress.com if you wish to discuss your requirements further.

@Dalibor:
You can use any themed DevExpress control in splash screens. One drawback does exist - initializing a theme and loading XAML resources will take some time, which means that your splash screen will appear with a delay. We are researching ways to improve splash screen performance and to make them more robust and modern in appearance. One of our ideas is to create a set of visual styles that doesn't depend on our theme mechanism.

We hope to share more details about this in the final roadmap early next year.

@Noufal:
In v19.2, we introduced a new visual style for read-only editors:
https://www.devexpress.com/subscriptions/new-2019-2.xml#dxeditors
Unfortunately, this style does not affect the visibility of editor buttons. Let's discuss our future plans for editor buttons in your Support Center ticket:
https://www.devexpress.com/Support/Center/Question/Details/T739459/the-clear-button-is-displayed-for-read-only-editors-with-the

@Stephen:
Thank you for expressing your thoughts on the roadmap. Like other modern themes, Visual Studio 2019 themes will offer color palettes.

As for Data Annotation attributes, there is not much we can do - data editors work with values passed to them by the Data Binding engine. You can track this issue to see if Microsoft decides to support Data Annotation attributes in .NET Core:
https://github.com/dotnet/wpf/issues/2256
As of now, the best way to use attribute-based validation with data editors is to wrap them in a control that has access to a data object - DataLayoutControl. Alternatively, you can use POCO ViewModels to generate the IDataErrorInfo interface implementation based on Data Annotation attributes.

13 December 2019
Stephen J White
Stephen J White
@Alex
Great news on the Visual Studio 2019 theme. I'm definitely looking forward to it. I know my company will like it too since we use the Visual Studio theme as the default for our main WPF app. :) 

Also, I appreciate you clarifying the reason why regular editors do not support them. I had a suspicion it was something Microsoft has to implement. I hope they do some day. It's a little weird they haven't when MVC and Blazor support it out of the box. 
13 December 2019
Mir123
Mir123

+1 for the "vertical version of the Grid Control for WPF".

We have some tradition columans and then need additional year columns where we don't know in advance how many years will be available. We created a custom control on top of your WPF grid to handle this and it works quite ok, but think an official solution would be much better.

16 December 2019
Ananad C
Ananad C
Please introduce a WPF theme which mimics the style of controls to similar Windows 10 Mail app/UWP controls.
17 January 2020
Markus Nißl
Markus Nißl

DevExpress offers a variety of themes. Though I have a hard time to make a choice for good one.

I see at least two areas where themes need improvement:

  1. Clarity: it's hard to discern visual elements. If you use the Office 2019 White theme, pretty everything is white: the header of GridColumns like the background of cells. Use this in master-detail-mode ... all you see is white. Well, it's called White theme after all. Then let's go for Office 2019 Colourful ... all you see is grey. Where is the colour in Colourful? The Seven theme actually looks good for GridControl ... but it doesn't look modern. Could you think of a modern Seven theme? Visual Studio 2017 Light is actually pretty OK. One out of 31 themes!
  2. Although Windows 10 RTM initially made not visual distinction between active and inactive windows, this options was restored with Windows 10 1511. Alas, ThemedWindow does not respect this setting in the control panel of Windows. The difference between an active and inactive window is only whether the title bar text is drawn in black or grey ... which makes it very hard to instantly see which window has the focus. Either respect the colour setting of Windows ... or at least respect the choice of the end user to have active and inactive windows displayed differently.
Would you please consider this in your roadmap?
21 January 2020
Alex Chuev (DevExpress)
Alex Chuev (DevExpress)
Markus,

Our Office 2019 themes are inspired by Microsoft Office products and use roughly the same set of colors as those of Microsoft Office. This also applies to the title bar appearance of inactive windows.

Note that we did make changes to our Office 2019 Colorful theme in v19.1.5. We replaced some grey colors with lighter versions and used the accent color for selection. You can see the difference in the following image: https://devexpress.com/support/center/Attachment/GetAttachmentFile//b5364f51-7aae-4ec6-ba74-ab7810760b1a.

In 2020, we plan to deliver themes inspired by Visual Studio 2019. We are also discussing a theme that will mimic the appearance of standard WPF controls and other elements from Windows 10 (such as the Windows Explorer). At this point, however, I cannot guarantee that this theme will be released in 2020.

Thanks,
Alex
22 January 2020

Please login or register to post comments.