WPF Themes, Dialogs, MessageBox and Other Controls — Upcoming Features (v22.2)

WPF Team Blog
13 September 2022

In our next major release, we will extend our WPF product line with a number of frequently requested features/capabilities. Please take a moment to review the features below and share your thoughts/opinions with us.

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 blog post and the features/products listed within it are subject to change. You should not rely or use this information to help make a purchase decision about Developer Express Inc products.

Windows 11 Dark Theme

As you may know, we shipped the DevExpress Win11Light theme in our last release cycle (v22.1):

We expect to implement a dark counterpart of this theme in our next major update (v22.2).

Async Buttons and Dialogs

If you’re like most, you’ve used an application where certain button clicks execute long/extended operations (such as a service request or complex data processing actions). Generally, these long/extended operations are executed asynchronously, and therefore, the UI should remain responsive. We expect to introduce async buttons and dialogs in our next major update. This will allow you to manage asynchronous commands more effectively:

Here are the features we expect to include for asynchronous buttons:

  • Buttons can automatically display a wait indicator while an operation is being executed
  • You can cancel command execution using a task cancellation token
  • You can display a cancel icon when a button is hovered during an async operation

Asynchronous buttons will be used within DialogService to help you create responsive dialogs for long/extended operations.

MessageBox Text Selection, Button Images, Closing Timer

Message Boxes are ubiquitous UI elements. While they are very simple, we believe they can be enhanced to improve app usability. Here are MessageBox-related capabilities we expect to include in our next major update:

  • Text selection. The standard MessageBox doesn’t allow you to select text (which is inconvenient if a user wants to copy an error code or other information).
  • Button images. Images will make your UI more appealing/intuitive and will prevent selection errors.
  • A timer to automatically close a MessageBox. This may be useful if you wish to execute a default action after a delay.

Scheduler - Asynchronous Appointment Loading

As you may know, our Scheduler Control supports on-demand data loading. This functionality is available using the FetchAppointments event. While on-demand loading helps reduce startup time, the UI may “freeze” if you navigate to a view with many appointments. In v22.2, we expect to extend FetchAppointments and implement asynchronous appointment loading to keep the UI responsive.

Scheduler - Navigation Bar

In our next release, we will enhance the Scheduler Navigation Bar to help end-users easily navigate to a required date and change view type. We expect to add the following UI elements:

  • Calendar to select dates
  • “Today” button
  • View selector

Middle Button Click Scrolling

Middle button click scrolling is a common option within browsers, Microsoft Office, and other popular applications. Though not all developers use this feature, some users may expect its availability because of habits developed using other apps. In v22.2, you will be able to enable middle-click scrolling for any control with ScrollViewer.

PropertyGrid API Enhancements

We will make PropertyGrid API more flexible for scenarios collected from your questions in Support Center:

  • An event to hide the “Remove” button in a collection item. Collections edited in the PropertyGrid don’t always need to support the remove operation. In v22.1, you need to customize theme templates to hide the “Remove” button. Our updated API will help you hide the Remove button based on your custom logic.
  • An event to help you customize PropertyGrid context menus
  • An event to determine whether a keyboard key should be processed by the active editor or by the PropertyGridControl. For example, if you have ComboBoxEdit in a cell, you will be able to decide whether the Down key should navigate to the next row in PropertyGridControl, or select the next item in ComboBoxEdit.
  • An event that allows you to determine whether a cell activation action (such as a mouse click or Enter key) should be processed by the cell editor when it’s being opened. For example, you can prohibit a SpinEdit to process the first activation click to prevent a user from changing its value unintentionally.

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.