WPF and WinUI — Early Access Preview, Upcoming Features (v21.2)

WPF Team Blog
10 September 2021

As you may know, we are a few months away from our next major release (v21.2). In this post, I’ll summarize WPF-related features/capabilities available in our upcoming Early Access (EAP) build, and preview additional WPF and WinUI features we expect to ship in November.

If you own an active DevExpress Universal or DXperience Subscription, you can download and install our v21.2 Early Access Preview (EAP) today. Visit the DownloadManager page to obtain the EAP build.

And please remember - your feedback matters. Once you’ve installed the EAP and had the opportunity to explore its capabilities, reach out to us via the DevExpress Support Center and tell us how we can improve our implementation and better serve your business needs going forward.

Early Access and CTP builds are provided solely for early testing purposes and are not ready for production use. This build can be installed side by side with other major versions of DevExpress products. Please backup your project and important data before installing Early Access and CTP builds.

Perhaps most importantly, this EAP may not include all features/products we expect to ship in our v21.2 release cycle. We are working hard to finalize all v21.2 features/capabilities and once we have more information to share, we’ll post updates on this channel.

Table of Contents

WinUI Development Update

We expect to release a new version of DevExpress WinUI components later this year. The new build will include the following new features/capabilities:

  • New WinUI Report Viewer
  • WinUI Data Grid - Printing & Export
  • WinUI Data Grid - New Optimized Templates
  • WinUI Data Grid - Horizontal Virtualization

The DevExpress WinUI 3 component suite is available free-of-charge for a limited-time. If you have yet to register your free copy, please visit the page below at your convenience.

DevExpress WinUI Controls v21.2 – Reserve Your Free Copy Today
Includes: DataGrid, Scheduler, Ribbon Toolbar, Data Editors, Gauge Indicators, Range Control,
and over 10 Chart types.

New XAML Designer Extensions for VS2022 and .NET 5

Visual Studio uses a new XAML designer for .NET Core, .NET 5, and .NET 6 WPF projects. The same designer is also used for .NET Framework-powered WPF projects within Visual Studio 2022.

v21.2 will include the following extensions to our new XAML Designer.

Chart Designer

The DevExpress Chart Designer is implemented as a separate window and allows you to create new and customize existing charts with ease.

Documentation

Chart Designer

Report Designer - Expressions

We extended the Report Designer and improved its user experience when defining expression bindings:

  • A new button (with a formula-f symbol) is now displayed next to the selected control. This button allows you to invoke the Expression Editor instantly.
Report Designer - New Expression Button
  • The Properties panel within the Report Designer now highlights “bindable” properties with a formula (f) symbol. A “colored” formula (f) symbol indicates that a property is bound to data:
Report Designer - Properties Panel - Expression Indicator

Mask Editor

The DevExpress Mask Editor allows you to quickly create and customize masks of any complexity at design time.

Documentation

Mask Editor

Quick Action Enhancements

  • Improved startup performance for dialogs and wizards activated via Quick Actions.
  • Added new actions that generate a Ribbon UI for our WPF Spreadsheet, Rich Text Editor, and Scheduler components.
Quick-Actions

Remote Desktop Performance Enhancements

Our theme cache engine - enabled by default for all built-in and custom WPF themes - now supports multiple sign in/sign out operations. This new option enhances the performance of all WPF apps developed with DevExpress components. Performance gains are especially significant for applications executed remotely (using tools such as Microsoft Remote Desktop Services or Citrix), where sign in/sign out operations are more common.

To help visualize performance related benefits associated with this enhancement, we measured how long it takes to render a WPF Spreadsheet control normally and after sign in/sign out:

RDP Enhancements

ARM64 Support

x86 apps built with v21.2 DevExpress WPF components can successfully execute on ARM64 devices.

Accessibility

Screen Reader Support for Validation Errors

Accessibility-related features now include validation support. Screen readers can now inform a user of validation errors within focused WPF editors and data cells.

Documentation

Visual Studio and Office Themes - Enhanced Contrast Palettes

Our enhanced Contrast palettes use carefully selected color combinations to help individuals with vision impairment distinguish text, borders, selection states, and other visual elements.

Documentation

Enhanced Contrast palettes are available for the following themes:

Enhanced Contrast Palettes

Data Grid and TreeList

MVVM Command API

Our WPF Data Grid and TreeList components include a new set of command properties:

  • AddingNewNodeCommand
  • CustomNodeFilterCommand
  • CustomUnboundColumnDataCommand
  • CellMergeCommand
  • CellValueChangedCommand
  • CellValueChangingCommand
  • InitNewRowCommand
  • InitNewNodeCommand
  • InvalidRowExceptionCommand
  • NodeChangedCommand
  • ValidateCellCommand

These properties act as counterparts to standard events and allow developers to shape data and react to user input at the ViewModel level without writing code in the View.

<dxg:GridControl CustomUnboundColumnDataCommand="{Binding UnboundColumnDataCommand}">
[Command]
public void UnboundColumnData(DevExpress.Mvvm.Xpf.UnboundColumnRowArgs args) {
    if(args.IsGetData) {
        Product item = (Product)args.Item;
        args.Value = item.UnitPrice * item.UnitsOnOrder;
    }
}

Documentation

Lock TreeList Updates

Our WPF TreeList allows you to fully lock calculations and tree hierarchy updates within it.

public void UpdateSource() {
    TreeListControl.View.BeginDataUpdate(true);
    //update source
    TreeListControl.View.EndDataUpdate();
}

As you might expect, this new API will help improve performance for large data sets (when/if large record sets must be updated simultaneously).

Documentation

New Windows 10 Dark Theme

This release includes a new Win10Dark theme – a theme that was inspired by the dark mode in Windows 10. Much like the Win10Light theme, the Win10Dark theme will automatically update its colors after each change to an accent color in Windows.

In addition, applications developed with DevExpress WPF controls can automatically switch between Win10Dark and Win10Light themes when a user selects the light or dark app mode within the OS.

Windows 10 Themes | Windows 10 Accent Color and App Mode

Windows 10 Dark Theme & App Mode Support

SVG Enhancements

Our internal SVG image parser can now display raster images embedded in SVG.

Charts and Maps

Charts - Customizable Empty Points

The DevExpress Chart Control can process gaps in a data source as empty points (points with undefined values). These gaps can now be visualized using different style options (based on Series view type). You can fully customize the appearance of point markers, line and area segments used to display empty points.

You can also draw “mock” points instead of gaps (based on values of neighboring Series points). To use this feature, set the series view’s EmptyPointOptions.ProcessPoints property to Interpolate.

Documentation

Charts - Customizable Empty Points

If you’re an active Universal or DXperience subscriber, and have installed our EAP, select one of the following to explore this feature in greater detail: Empty Points

Maps - Create Lines, Polylines and Polygons from a View Model (MVVM Enhancements)

In our on-going effort to enhance our MVVM bindings, we extended ListSourceDataAdapter to generate lines, polylines, and polygons from a collection of coordinates in a View Model.

We added two new mapping types (MapLineMappingInfo and MapMultipointItemMappingInfo) for lines and multi-point shapes (MapPolylines and MapPolygons).

Documentation: MapLineMappingInfo | MapMultipointItemMappingInfo

If you’re an active Universal or DXperience subscriber, and have installed our EAP, use the following link to explore this feature in greater detail: Map Arrows

Maps - Lambert Azimuthal Equal-Area Projections

This release includes support for a new projection type – the European Terrestrial Reference System 1989 - Lambert azimuthal equal-area (ETRS89-LAEA) projection. To enable this new projection, set the GeoMapCoordinateSystem.Projection property to Etrs89LambertAzimuthalEqualAreaProjection.

You can use this projection to display European Union (EU) maps with minimal distortion.

Maps - Lambert Azimuthal Equal-Area Projections

If you’re an active Universal or DXperience subscriber, and have installed our EAP, select one of the following to explore this feature in greater detail: Map Projections

Upcoming Features

Though the following features are not included in our first EAP, we expect to include them in our next preview or our first beta.

.NET 6 Support

DevExpress WPF controls will support the latest Preview build of .NET 6.

Visual Studio 2022 Support

We expect to add DevExpress WPF Project & Item Templates, menu items, Toolbox items, and XAML designer extensions for Visual Studio 2022 Preview.

Windows 11 Support

We will make certain that apps built with DevExpress WPF components function properly on Windows 11 devices.

New Heat Map Control

A new Heatmap Control that visualizes data in tabular format through variations in coloring.

Data Grid & TreeList - New CRUD API

New events & commands will simplify CRUD operations:

  • Row editing - start, finish & cancellation across all edit modes (inline editing, Edit Entire Row, Edit Form).
  • Deletion of selected rows & synchronization of deleted rows with the database.
  • Refresh operations for regular, asynchronous, and server-side data sources.

Spreadsheet, Rich Text Editor, and PDF Viewer - Accessible PDF Export

Our upcoming release will allow you to export your spreadsheet and rich text documents to tagged (accessible) PDF files. We expect to fully support PDF/A-1a, PDF/A-2a, PDF/A-3a, and PDF/UA standards. You will be able to generate accessible PDFs in code or via user interface elements.

Spreadsheet, Rich Text Editor - Custom Font Loading Engine

Our WPF Spreadsheet and Rich Text Editor controls (v21.2) will allow you to use fonts not installed on a given system. This feature allows you to avoid font substitution when you display, print, or export (to PDF) documents with non-standard fonts. You will be able to load necessary fonts from files, streams, or byte arrays. These fonts will be available to all instances of the DevExpress Spreadsheet and Rich Text Editor within a given project.

Spreadsheet - Set Print Options in Print Preview

v21.2 will add a new Settings pane to the Spreadsheet control’s Print Preview window. This pane will allow you to specify the following print-related settings:

  • Select spreadsheet content to print. You will be able to print the entire workbook or a specific portion of your document.
  • Specify the number of copies to print.
  • Customize page settings (document orientation, paper size, and page margins).
  • Define scaling options.

More Quick Action Enhancements for the new XAML Designer

  • New actions to generate Data Grid columns.
  • The Conditional Formatting Editor dialog.

Best Practices, Examples & Documentation

All help articles will be updated to reflect specifics related to .NET Core, .NET 5, and .NET 6. The majority of code examples will have a .NET version alongside a .NET Framework counterpart.

We also expect to publish best practices and examples for the following topics:

  • Dependency Injection with DevExpress controls.
  • MVVM in Reporting.
  • Performance enhancements for the Data Grid.
  • CRUD implementation in the Data Grid.

Your Feedback Counts

As always, we welcome your feedback. Please post your comments below or create a new support ticket if you've beta tested our Early Access Preview.

FREE DevExpress Xamarin UI Controls

Deliver high-impact native mobile apps with our feature-rich Data Grid, Scheduler, Chart, TabView, Editors, and utility controls. Reserve your free copy today!
Stephen J White
Stephen J White

HI Eugene and the rest of the WPF team, 

Do you know if there are any plans or interests in making a Visual Studio 2022 theme or is it too early to say yes or no to that yet? 

As for the WinUi controls, do you think there is any chance they will be able to be used in WPF applications this year or is there no ETA on when that will be possible? 

14 September 2021
Alex Chuev (DevExpress)
Alex Chuev (DevExpress)

Hi Stephen,


We are interested in the visual changes in VS 2022 and will see if they are sufficient to warrant a new theme. We will certainly share more in our Roadmap for 2022 in a couple of months.


As for hosting WinUI content in WPF apps, it is one of the top priorities for the WinUI team at Microsoft. It's a technology called XAML Islands, which is planned for a future WindowsAppSDK release (presumably next year). Take a look at the WindowsAppSDK roadmap to learn more: https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/xaml-islands.


P.S. I wanted to learn more about your reasons behind hosting WinUI content in WPF. Do you expect to gradually migrate to WinUI by rewriting some parts of your WPF app? Or is there a specific WinUI feature that you wish to get a hold of in WPF?


Thanks,

Alex

15 September 2021

Please login or register to post comments.