WinForms — Early Access Preview (v23.2)

WinForms Team Blog
15 September 2023

This blog post describes new features included in our Early Access Preview (EAP) build. If you are an active DevExpress Universal or DXperience subscriber, you can download and install the EAP today (visit the DevExpress Download Manager to obtain our EAP build).

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 other important data before installing Early Access and CTP builds.

This EAP may not include all features/products we expect to ship in our v23.2 release cycle. As its name implies, the EAP offers an early preview of what we expect to ship in two months.

End of .NET Standard 2.0 Support

With our next major update v23.2 (December 2023), our assemblies will not be built against this target. Learn more about this change in the following blog post: .NET — .NET Standard 2.0 Deprecation, Support for .NET 6 or .NET 8 (LTS) in DevExpress Libraries (v23.2).

Accessibility

We've done our best to extend accessibility support across our WinForms product line. Below I will outline some of the enhancements included in this EAP release.

UI Automation Support

You can now use UI Automation to access the following components:

  • DiagramControl
  • GanttControl
  • DocumentViewer
  • Spreadsheet
  • ChartControl
  • FilterControl

We also added UI Automation support for HTML & CSS templates. 

UI Automation offers two major benefits:

  • Users who utilize assistive technologies (such as screen readers) can now access information and interact with UI elements.
  • You can now create UI tests to verify that all visual elements within a DevExpress-powered WinForms app function correctly.

Keyboard Focus and Navigation

We extended keyboard-related capabilities so users can interact with the following elements without the use of a pointing device:

  • Data Grid Column Chooser
  • Detail Grid Tabs
  • CardView Customization Window

Other Accessibility Enhancements

Effective accessibility support requires attention to details, and therefore we’ve made many small accessibility-related additions. The following are included in this EAP: 

  • LayoutControlItem now automatically sets its AccessibleName based on label text.
  • GaugeControl now passes its EditValue to assistive technologies.
  • ColorEdit now supports keyboard navigation and UI Automation.
  • Screen readers now can access text in XtraMessageBox.
  • Card View Expand Button now supports UI Automation.
  • BreadCrumbEdit now has the UI Automation tree similar to Windows Explorer.
  • The UI Automation tree for DateEdit now contains all elements from the dropdown.

As you may know, Microsoft’s .NET 7 update introduced the Command property for controls such as Button and introduced new MVVM capabilities: Using Command Binding in Windows Forms apps to go Cross-Platform. While we already have a command binding engine, we implemented the Command property (for all WinForms components) for better compatibility with Microsoft’s new mechanism.

We also augmented the UI generation mechanism in our Data Layout Control. This change allows you to automatically generate buttons based on view model commands.

Font Icon Images

Windows 10/11 contains numerous font icons ("Segoe MDL2 Assets" and "Segoe Fluent Icons" fonts). With v23.2, you can use these icons with ImageOptions and SVG support.

HTML & CSS - Emojis and Other Surrogate Pairs

Our WinForms HTML & CSS engine now supports emojis, symbols from CJK (Chinese, Japanese and Korean) extensions, and other symbols that require multiple Unicode characters.

Serialization Customization

We extended our serialization APIs to control properties serialized by our WinForms Data Grid, Tree List, and Vertical Grid. This enhancement allows you to retain only required layout information and avoid serialization settings if you don’t wish to persist them on the next app run.

treeList.PropertySerializing += (s, e) => {
    if(e.Owner is TreeListColumn && e.PropertyName == "Caption")
        e.Allow = DefaultBoolean.False;
};

Tree List - Collection Aggregate Functions

As you may know, our WinForms Data Grid allows you to create filters with the following collection aggregation functions: Count, Min, Max, Average, Sum, Exists. You can now use these functions in WinForms TreeList collection properties.

Tree List & Gantt - Middle-Click Scroll

Our WinForms TreeList and Gantt controls now support middle-click scroll operations. Users can press the middle mouse button and move the mouse to scroll content.

MemoEdit - Auto-Complete Mode

You can now suggest an auto-complete option when a user enters text in the Memo Editor. To use this new mode, switch editor mode to "Advanced" and specify auto-complete options.


Your Feedback Matters

As always, we welcome your feedback. Should you encounter an issue while using this WinForms EAP, please submit a support ticket via the DevExpress Support Center. We will be happy to follow-up.

Free DevExpress Products - Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We'll be happy to follow-up.