WinForms Controls v19.2

New Gantt (CTP)

The new DevExpress WinForms Gantt Control is a powerful project management tool that allows you to schedule tasks and monitor the progress of projects.

Our WinForms Gantt control ships with a variety of high-impact features including:

  • Data binding support
  • Multiple task types
  • Working days and holiday tracking
  • Configurable task appearance options
  • Time scale customization
  • Data filtering, sorting, etc.
  • Scroll and zoom options
  • Printing support
  • DirectX Hardware Acceleration for the fastest possible performance

Demo   Blog Post   Documentation
Requires installation of WinForms Subscription v19.2. Download

WinForms Gantt Control - DevExpress

New SvgImageBox

Our new WinForms SvgImageBox control displays an SVG image and allows users to interact with individual image elements via selection and hot-track. The control's API allows you to access and customize image elements (for instance, hide or change their appearance) and respond to user actions.

Blog Post   Documentation

WinForms SvgImageBox Control - DevExpress

.Net Core 3 Support

Our WinForms product line supports .NET Core 3.0. However, since the new WinForms designer is not yet available within Visual Studio, you can only use our UI controls in code or use a workaround with linked files. Our WinForms .NET Core 3 components remain as a CTP (Community Technical Preview) until Microsoft ships its WinForms designer.

Blog Post   Documentation

Data Grid

Search and Group Panel Integration

Both the Search Panel and Group Panel have been combined into a single element. The Group Panel displays a 'Search' button on its right. When clicked, it reveals a search text box. This new layout maximizes uses of screen real-estate and prevents the control from moving records up or down when users invoke and hide the Search Panel.

Search and Group Panel Integration - WinForms Data Grid, DevExpress

This layout is enabled by default. If you wish to revert to two separate panels, set the OptionsFind.FindPanelLocation property to 'GroupPanel'.

Demo   Blog Post   Documentation
Requires installation of WinForms Subscription v19.2. Download

Miscellaneous Enhancements

  • Group Row Context Menu

    Our WinForms Data Grid now includes a context menu for group rows. You can handle the PopupMenuShowing event to add custom menu commands as needed.

  • CheckBox Selection for Banded and Advanced Banded Grid Views

    You can now set the GridOptionsSelection.GridMultiSelectMode property to 'CheckBoxRowSelect' for Banded and AdvancedBanded Views.

  • Display Selection Checkboxes in Group Rows in Data Bound Mode

    Group rows can now display a selection check box when checkbox selection state is bound to a data source field. Documentation

  • Copy to Clipboard

    You can handle a new event (ClipboardRowCopying) to modify Clipboard data or prevent certain rows from being copied to the Clipboard.

  • Drag-and-Drop

    Our WinForms Data Grid now supports drag & drop between its TileView and GridView. Use DragAndDrop Behavior (Behavior Manager component) to enable this option. Documentation

  • Edit Form

    The new EditFormHidden event allows you to execute custom actions after the Edit Form has been closed in both the GridView and TileView. Documentation

  • Excel Style Filtering Menu

    The FilterPopupExcelParseFilterCriteria event allows you to convert filter criteria to filter values for Excel-style filter menus. Documentation

Charting

Waterfall

This release includes a new Waterfall chart type. Waterfall charts can help visualize positive and negative changes to values across a given time period.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

Waterfall Series - .NET Charting, DevExpress

Box Plot

This release includes a new Box Plot chart type. Box Plot charts help you visualize data distribution across a six number summary (minimum, first quartile, median, third quartile, maximum and mean). Any data not included between minimum and maximum values are plotted as an outlier with a small circle.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

Box Plot - .NET Charting, DevExpress

Chart Toolbar Enhancements

Our new Chart Toolbar allows you to:

  • Switch a series view
  • Draw Fibonacci indicators with use of built-in drawing tools
  • Plot any technical indicator on a separate pane
  • Change a measurement unit for the axis of arguments
  • Adjust a visible data range

The toolbar can be customized. You can rearrange UI elements or hide unnecessary commands.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

WinForms Chart Toolbar, DevExpress

Resize Panes at Runtime

Enable the XYDiagram2D.RuntimePaneResize option to allow end-users to change pane size.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

Resize Panes at Runtime - WinForms Charting, DevExpress

Scrollbar Annotations

With scrollbar annotations, you can direct users to important information within the XY diagram. We offer annotations for the following chart elements:

  • Strips
  • Constant Lines
  • Pane Annotations
  • Series Point Annotations
  • Custom Axis Labels

You can enable/disable scrollbar annotations for specific chart elements.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

TimeSpan Axis Scale Support

v19.2 introduces full support for TimeSpan scales. You can plot your TimeSpan data as-is or specify a custom aggregation mode. TimeSpan data can be mapped to an X-Axis, Y-Axis or both.

Demo
Requires installation of WinForms Subscription v19.2. Download

New Default Appearance Schema (Basic Skin)

In v19.2, we've updated the default appearance schema for our WinForms Chart control to match our new Basic skin.

See details

Default Appearance Schema - WinForms Chart, DevExpress

Accordion

New enhancements include:

Diagram

Org Chart Layout

The new Org Chart automatic layout algorithm visualizes roles and relationships within an entity such as a company department. Shapes at the upper levels of the hierarchy are arranged using the "tree graph" algorithm. The number of levels in the tree section is specified by the OrgChartLayoutTreeLevelCount property.

The lower levels of the hierarchy are arranged using the "tip-over" tree layout algorithm.

Org Chart Layout Demo
Requires installation of WinForms Subscription v19.2. Download

Org Chart - WPF Diagram Control, DevExpress

Connector Labels

With this release, you can add up to four text labels to connectors. You can add two labels at the start point and two labels at the end point.

New API includes:

  • BeginLeftLabel / BeginRightLabel
  • EndLeftLabel / EndRightLabel
  • BeginLabelArrowOffset / BeginLabelConnectorOffset
  • EndLabelArrowOffset / EndLabelConnectorOffset

Demo
Requires installation of WinForms Subscription v19.2. Download

Connector Labels - WinForms Diagram Control, DevExpress

Editors

LookUp Editors - AutoSuggest Mode (Virtual Search)

Our WinForms LookUpEdit and GridLookUpEdits controls support a new user-friendly search option.

In AutoSuggest mode, our WinForms Lookup editor fires an AutoSuggest event whenever a user enters text within it. You can handle this event and assign an asynchronous Task to the QuerySuggestions parameter to populate your lookup list. This asynchronous Task should check the text entered within the lookup and return an item collection for the editor's drop-down window.

Demo   Documentation   Blog Post
Requires installation of WinForms Subscription v19.2. Download

  • c#
lookUpEdit1.AutoSuggest += OnAutoSuggest;
// ...
// Setup(LookUp edit):
lookUpEdit1.Properties.SearchMode = SearchMode.AutoSuggest;
void OnAutoSuggest(object sender, LookUpEditAutoSuggestEventArgs e) {
    e.QuerySuggestions = (Task<ICollection>) ... ;
}

LookUp Editors - AutoSuggest Mode, WinForms Editors | DevExpress

Lookup Editors - AutoSearch Mode

AutoSearch mode was designed for bound LookUpEdit and GridLookUpEdit controls. AutoSearch "unlocks" the editor's text box and allows users to enter "search" criteria within it. The editor hides data source records that do not match the text entered within the text field and displays matching entries within its drop-down window.

To enable AutoSearch mode, set the SearchMode property to 'AutoSearch'.

You can handle the AutoSearch event to fine-tune search results and\or customize text highlight logic.

Demo   Documentation   Blog Post
Requires installation of WinForms Subscription v19.2. Download

  • c#
// Setup (default behavior)
lookUpEdit1.Properties.SearchMode = SearchMode.AutoSearch;


// Customisation
lookUpEdit1.Properties.SearchMode = SearchMode.AutoSearch;
lookUpEdit1.AutoSearch += OnAutoSearch;
// ...
void OnAutoSearch(object sender, LookUpEditAutoSearchEventArgs e) {
    e.SetParameters(...);
}

Lookup Editors - AutoSearch Mode, WinForms Editors | DevExpress

TimeSpan Edit Mask

New TimeSpan and TimeSpanAdvancingCaret masks allow end-users to enter time intervals. Both masks support negative intervals.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

TimeSpan Edit Mask, WinForms Data Editors | DevExpress

Map

Heatmap Data Provider

v19.2 includes a new cartographic visualization option – a heat map. To create a heat map, use our new data provider (HeatmapProvider) linked to geographical point data (latitude and longitude) and define the heat map color schema using ChoroplethColorizer.

You can also change the following heatmap options: color gradient, opacity and data point radius.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

Heat map - WinForms and WPF Map Control, DevExpress

In-Memory Image Tile Provider

The ImageTileDataProvider allows you to display custom tile images without saving them locally. You can load image tiles created at runtime from almost any source. To do this, create a bitmap for each tile based on its indices.

Example - GitHub Project   Documentation

Gradient Mode for ColorScaleLegend

This release includes a new EnableGradientScale property. Set this property to true and create a gradual blend between legend color items.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

Color Scale Legend Gradient Fill - Winforms / WPF Map Control, DevExpress

Pivot Grid

Aggregation at Any Level

This release includes an optimized Pivot Grid calculation engine for WinForms, WPF and ASP.NET. This new engine provides a more versatile summary expression function. The scope of the function is unbound fields. The Aggr function aggregates data with a specific summary function against a specific set of dimensions. Aggr functions can be nested as needed (you can easily create the desired aggregation level within the Pivot Grid control).

The Aggr function has the following syntax: Aggr(summaryExpression, dimension1, dimension2, ...)

The first argument is a summary expression calculated against a data source field. It is followed by a set of dimensions whose values are grouped to calculate summaries for the first argument.

Learn more about aggregation at any level

Demo
Requires installation of WinForms Subscription v19.2. Download

Window Calculations

You can now specify the following window calculation options:

  • Running Totals
  • Moving Calculation
  • Rank
  • Difference
  • Percent Of Total
  • Custom Window Expression

Our new object model includes the following classes:

  • RunningTotalBinding
  • MovingCalculationBinding
  • RankBinding
  • DifferenceBinding
  • PercentOfTotalBinding
  • WindowExpressionBinding

These enhancements are available when our new Optimized calculation engine is activated.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

Direct Data Access in Client Mode

Our data engine loads data to local in-memory storage. This local storage is optimized for frequent calculations with typed data sets and guarantees data integrity. Some large data sets, however, may require too large a memory footprint (which can, in turn, slow down an application).

With this release, we've added a DirectDataAccessInClientMode option. When the DirectDataAccessInClientMode option is enabled, our calculation engine does not upload source data to temporary storage. This avoids performance degradation in Client mode when working with large volumes of data (and when frequent re-calculations are unnecessary).

This option cannot be used if using the PivotGrid in Legacy mode.

MRU Filter List

Our WinForms Pivot Grid's Filter Panel includes a drop-down list that displays recent filters applied to pivot data. To display the most recently used filters, click the MRU Filter Button or click the filter criteria.

Documentation

Range Control

Date-Time Range Client for the Range Control

Our new Date-Time Range client allows you to visualize and select date-time intervals within the WinForms Range Control. The new client supports multiple rulers, appearance customization options and provides custom draw events.

To use the Date-Time client at design time, invoke the Add Date-Time Client smart tag command. Use the RangeControl.Client property to specify the client at runtime.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

Date-Time Range Client - Range Control, DevExpress

Ribbon, Bars and Dock UI

DockManager - Dock to the Center

Our DockManager allows you to dock its panels to a parent container's center region. Modern docking guides (hints) are also available and do not require a separate DocumentManager component.

Demo   Blog Post   Documentation
Requires installation of WinForms Subscription v19.2. Download

WinForms Dock Manager - Dock to the Center, DevExpress

Miscellaneous Enhancements

  • You can now hide/display the BackstageView at design time via a smart tag. Documentation
  • You can now adjust the offset between a BarEditItem's caption and its editor. Documentation
  • You can now apply a foreground color to custom Ribbon categories.
  • A Ribbon Group's caption button is now hidden by default (unless you subscribe to the CaptionButtonClick event, or enable the ShowCaptionButton option).
  • You can now activate the Ribbon's Search Menu via a shortcut. Use the RibbonControl.SearchItemShortcut property to specify the shortcut. Documentation
  • The CustomizationFormShowing event allows you to modify the Customization Form, or replace it with a custom form. Documentation

Rich Text Editor

Hyphenation

Our WinForms Rich Text Editor now supports soft hyphens and automatic hyphenation. You can load, print and export documents with soft hyphens. End users can insert hyphens via the Ribbon UI or the Ctrl+- shortcut.

You can also enable automatic hyphenation. To do so, link a dictionary that specifies hyphenation rules.

Documentation

Hyphenation - WinForms Rich Text Editor, DevExpress

Track Changes

Our Rich Text Editor allows you to use Track Changes to make revisions in a document. You can access, accept or reject changes in code. New UI elements allow you to enable change tracking and display revisions. Documents with revisions can be printed and exported to PDF.

Blog Post   Documentation

Track Changes - WinForms Rich Text Editor, DevExpress

Theme Font Support

Our Word Processing Document API and WinForms / WPF Rich Text Editors support theme fonts. A document theme contains two sets of fonts (Headings and Body) for the entire document. Each set includes font names for different languages.

Scheduler

Resource Categories and Office-inspired Resource Tabs

Our WinForms Scheduler can now arrange resources into categories. For example, you can create business-related and personal categories.

Office-inspired Resource Categories - WinForms Scheduler, DevExpress

You can also display resources as tabs.

Office-inspired Resource Tabs - WinForms Scheduler, DevExpress

Demo - Tabs   Documentation
Requires installation of WinForms Subscription v19.2. Download

Recurrence Form Enhancements

We've redesigned the Recurrence Form and added a year recurrence option. You can now schedule events that repeat once every N years.

Recurrence Form - WinForms Scheduler Control, DevExpress

HTML Formatting

You can now use HTML-inspired tags within Scheduler appointments/events (subject, description and location). Set the view's AppointmentDisplayOptions.AllowHtmlText property to true to enable HTML formatting. You can also handle the InitAppointmentDisplayText event to provide custom text and a description formatted with HTML tags.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

HTML Formatting - WinForms Scheduler, DevExpress

Skins and Vector Icons

New Office 2019 Skins

v19.2 introduces three new Office 2019 vector skins - White, Black, and Dark Gray.

Documentation

Office 2019 White, Dark Gray and Black Skins for WinForms, DevExpress

New Basic Skin

This release includes our brand-new vector skin (Basic) with six color variations (palettes). The Basic skin is now applied to all our WinForms controls by default.

Documentation

The Basic Skin for WinForms, DevExpress

Spreadsheet

Excel Binary Workbook (XLSB) Support

The DevExpress Spreadsheet Document API and WinForms / WPF Spreadsheet controls now support the XLSB (BIFF12) format. You can load and save documents using this format.

Documentation

Excel 5.0/95 Workbook (BIFF5) Support

With this release, our WinForms and WPF Spreadsheet controls and Spreadsheet Document API can import documents using the Excel 5.0/95 Binary file format (BIFF5).

Status Bar

v19.2 introduces a Status Bar for our WinForms and WPF Spreadsheet controls. The status bar allows you to zoom (in or out) the current worksheet and displays the following summary information:

  • Number of selected cells (Count)
  • Number of selected cells with numerical values (Numerical Count)
  • Average
  • Minimum value (MIN)
  • Maximum value (MAX)
  • Sum

Documentation

Status Bar - WinForms Spreadsheet, DevExpress

Enhanced Column Width Calculation for Printed Workbooks

We now calculate column widths more accurately for printed/exported (to PDF) workbooks. The resulting printout closely mirrors the print output of Microsoft Excel.

Note: This enhancement is only available if our new Spreadsheet layout engine is enabled.

TreeList

Popup Edit Form

The Popup Edit Form allows end-users to edit column values within a modal window. To activate Popup Edit Form mode, set the OptionsBehavior.EditingMode property to TreeListEditingMode.EditForm.

Documentation

Popup Edit Form - WinForms TreeList, DevExpress

EntireBranch Filter Mode

In "EntireBranch" filter mode, our WinForms Tree List displays matching nodes along with associated parent and child nodes.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

EntireBranch Filter Mode - WinForms TreeList, DevExpress

Node Expand/Collapse Menu

A new context menu allows you to expand and collapse nodes. The node menu is enabled by default.

Node Expand/Collapse Menu - WinForms TreeList, DevExpress

New API includes:

  • TreeList.OptionsMenu.EnableNodeMenu - enables/disables the node menu
  • TreeList.OptionsMenu.ShowExpandCollapseItems - toggles the visibility of individual menu items

Documentation

High DPI Support

PerMonitorV2 Support (CTP)

As a part of our on-going commitment to our developer community, we've implemented PerMonitorV2 support for a number of DevExpress controls. This option allows controls to scale differently based upon the DPI factor applied to the display/monitor.

This DPI-aware mode requires .NET Framework 4.7 and Windows 10 (build 1703 or newer).

Blog Post

ImageOptions.ImageUri - SVG Support

When using the ImageOptions.ImageUri option, our WinForms controls use SVG images instead of raster images. To roll back to raster images, set the WindowsFormsSettings.DefaultSettingsCompatibilityMode property to "v19_1".

HTML Formatting Enhancements

With this release, you can use <sub></sub> and <sup></sup> HTML-inspired tags to display super/sub script text within individual controls.

Our new <font> tag allows you to specify custom fonts:

  • html
                            <font='Times New Roman'size=5 color=red>Important text</font>

We've also added an <r> tag which resets all bold, italic, underline and strike-through text back to its normal state. The <r> tag resets text formatting styles applied with other HTML tags, and appearance\skin settings.

Documentation

HTML Formatting - WinForms Controls, DevExpress

Miscellaneous

Data Editors

  • CheckedListBoxControl includes a new ReadOnly property. Documentation
  • SearchLookUpEdit can now select the first lookup record when you press ENTER. Documentation

New Server Mode Components

eXpress Persistent Objects includes new components designed for those working with large data sets. XPServerModeView and XPInstantFeedbackView are efficient read-only sources for all data-aware controls. These components feature low memory consumption and improved performance. You can find these components in the Toolbox and bind to them with the Data Source Configuration Wizard.

Read our XPO blog post to learn more about these components and advantages they feature.

Documentation   Example

The new JsonDataSource component allows you to bind DevExpress data-aware controls to REST data in the JSON format. You can utilize the updated Data Source Configuration Wizard, or add the JsonDataSource component from the Visual Studio Toolbox and manually configure connection settings.

The JsonDataSource, SqlDataSource and ExcelDataSource components now offer FillAsync methods. These methods populate the data sources in another thread eliminating UI freeze. Our Data Source Configuration Wizard automatically generates the FillAsync method call for these data sources, instead of the standard Fill method call.

Documentation   Example

Work with Images at Design Time

  • You can now load vector icons from referenced project assemblies to SvgImageCollections at design time and in code. Documentation
  • Our design-time Image Picker can now export images to project resources. Documentation

Flyout Hints

You can now display a FlyoutPanel as a tooltip. FlyoutPanel is a container that can display any control. To show a FlyoutPanel as a tooltip, handle the ToolTipController.GetActiveObjectInfo event, set the e.Info.ToolTipType property to Flyout and assign a required control to e.Info.FlyoutControl.

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

DevExpress Flyout Hints for WinForms

Camera Control - DirectX Hardware Acceleration Support

Our WinForms Camera Control can now use DirectX hardware acceleration, allowing you to deliver outstanding performance on High-DPI devices (4K+).

Layout Item - Align Content API

With this release, we've hidden our ContentAlignment, TrimClientAreaToControl and FillControlToClientArea properties. We've introduced new ContentVertAlignment and ContentHorzAlignment properties designed to align controls embedded into LayoutItems.

Demo   Blog Post
Requires installation of WinForms Subscription v19.2. Download

XtraForm - Icon Options

XtraForm and its descendants now support raster and vector images. Use the IconOptions property to configure image settings.

Blog Post   Documentation

XtraForm - Icon Options

Disable Cells Conditionally

Our BehaviorManager component allows you to disable individual data cells or entire rows (when they meet a condition). Disabled cells are grayed-out according to the skin settings you've specified. End-users are not allowed to edit disabled cells.

Supported controls: Data Grid, TreeList, Vertical Grid

Demo   Documentation
Requires installation of WinForms Subscription v19.2. Download

Disable Cells Conditionally - WinForms Data Editors, DevExpress

WPF Controls v19.2

.NET Core 3.0 Support

Our WPF product line officially supports .NET Core 3.0 and Entity Framework Core 3.0. DevExpress WPF controls have been extensively tested and are ready for production. We encourage you to use .NET Core 3.0 in your new projects to enjoy Microsoft's latest technology enhancements.

Documentation   Blog Post: .NET Core 3.0 Support   Blog Post: Visual Studio Integration

Data Grid and TreeList

Conditional Formatting Filters

You can now easily filter data based on the Conditional Formatting rules defined for a column. Both the Filter Editor and the Excel-Style Drop-Down Filter can display available rules and indicate the number of records that meet rule conditions. You can also create a dedicated Filter Element for Conditional Formatting filters.

Demo   Documentation   Blog Post
Requires installation of WPF Subscription v19.2. Download

Conditional Formatting Filters - WPF Data Grid, DevExpress

Data Analysis Filters

The Data Grid and TreeList allow you to apply the following data analysis filters:

  • Top N
  • Bottom N
  • Below Average
  • Above Average
  • Unique
  • Duplicate

The Filter Editor and the Excel-Style Drop-Down Filter display the corresponding operators in their operator lists.

Demo   Documentation   Blog Post
Requires installation of WPF Subscription v19.2. Download

Numerical Filters - WPF Data Grid, DevExpress

Search Panel - New Parse Modes

  • Exact - the search engine does not split the query into individual words and thereby searches for exact matches.
  • Or - words in the search query are combined with the OR operator.
  • And - words in the search query are combined with the AND operator.

Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Excel-Style Drop-Down Filter Enhancements

Our new Excel-Style Drop-Down Filter is now used in the Data Grid and TreeList by default. It includes various performance and stability enhancements and can now work with server-side data provided by Server Mode, Instant Feedback, or Virtual sources.

Data Grid Demo - WCF Data Services
Requires installation of WPF Subscription v19.2. Download

Excel-Style Drop-Down Filter Enhancements - WPF Data Grid, DevExpress

Summary for Selection

Our WPF Data Grid and TreeList can now calculate summary values for selected rows or cells. You can enable this functionality for all group and total summaries or create individual summary items for selected rows/cells (in addition to standard totals).

Demo   Documentation   Blog Post
Requires installation of WPF Subscription v19.2. Download

Summary for Selection - WPF Data Grid, DevExpress

Edit Entire Row

Our WPF Data Grid and TreeList introduce a new edit mode that displays Update and Cancel buttons for an edited row. In this mode, your changes are not posted to the data source and you cannot navigate away from an edited row unless you press the Update or Cancel button.

Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Edit Entire Row - WPF Data Grid, DevExpress

Filtering UI Server Sources Support

Our new Filter Editor, the Excel-Style Drop-Down Filter, and Filter Elements can work with server-side data provided by Server Mode, Instant Feedback, or Virtual sources.

Charting

Waterfall

This release includes a new Waterfall chart type. Waterfall charts can help visualize positive and negative changes to values across a given time period.

Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Waterfall Series - .NET Charting, DevExpress

Scrollbar Annotations

With scrollbar annotations, you can direct users to important information within the XY diagram. We provided annotations for the following chart elements:

  • Strips
  • Constant Lines
  • Pane Annotations
  • Series Point Annotations
  • Custom Axis Labels

You can enable/disable scrollbar annotations for specific chart elements.

Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Box Plot

This release includes a new Box Plot chart type. Box Plot charts help you visualize data distribution across a six number summary (minimum, first quartile, median, third quartile, maximum and mean). Any data not included between minimum and maximum values are plotted as an outlier with a small circle.

Demo
Requires installation of WPF Subscription v19.2. Download

Box Plot - .NET Charting, DevExpress

TimeSpan Axis Scale Support

v19.2 introduces full support for TimeSpan scales. You can plot your TimeSpan data as-is or specify a custom aggregation mode. TimeSpan data can be mapped to an X-Axis, Y-Axis or both.

Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

XY-Diagram Performance Improvements - Real-Time Data Updates

In v19.2, we've optimized our XY-Diagram layout calculation engine, which results in high refresh rates and smooth visualization when handling very fast-changing datasets. See the following chart for performance measurements compared to v19.1.

XY-Diagram Performance Test - WPF Charting, DevExpress

Diagram

Org Chart Layout

The new Org Chart automatic layout algorithm visualizes roles and relationships within an entity such as a company department. Shapes at the upper levels of the hierarchy are arranged using the "tree graph" algorithm. The number of levels in the tree section is specified by the OrgChartLayoutTreeLevelCount property.

The lower levels of the hierarchy are arranged using the "tip-over" tree layout algorithm.

Org Chart Layout Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Org Chart - WPF Diagram Control, DevExpress

Connector Labels

With this release, you can add up to four text labels to connectors. You can add two labels at the start point and two labels at the end point.

New API includes:

Connector Labels Demo
Requires installation of WPF Subscription v19.2. Download

Connector Labels - WPF Diagram Control, DevExpress

Printing - Fit to Page

You can now scale a diagram and fit it onto a single page or a fixed number of pages when printing. To scale a diagram in code, use the new overloads of the Print, QuickPrint, and PrintToPdf methods. These allow you to specify the orientation and number of pages used to fit the diagram.

End-users can set these options within the Print Preview window.

Printing - Fit to Page, WPF Diagram | DevExpress

Badges

The new Badge API allows you to display badges over any control or UI element, be it a data grid column or Toolbar/Ribbon item. You can specify badge position, content, and appearance.

Badges Demo | Documentation
Requires installation of WPF Subscription v19.2. Download

DevExpress Badges for WPF

Data Editors

Time Picker

This release includes a new Time Picker control. This control can be used as a standalone time picker, or you can seamlessly embed it within the DevExpress DateEdit control.

Time Picker Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

DevExpress Time Picker for WPF

Read-Only State

With this release, data editors in a read-only state are visually distinguished from those that can be edited. This feature is available when using Office 2016 SE, Office 2019, and VS 2017 themes.

Read-Only State - WPF Data Editors, DevExpress

Miscellaneous Enhancements

  • You can substitute the selected value in the AutoSuggestEdit control using the new SuggestionChoosing event.
  • ButtonEdit descendants can now display a loading indicator within their text box when a time consuming operation is performed.
  • Editors can display null text when they are focused.
  • The new CheckEdit.Toggle method allows you to change the CheckEdit control's checked state.

Docking

MVVM Enhancements

  • Layout Groups now offer ItemTemplate and ItemTemplateSelector properties. This allows you to build complex layouts with nested groups and panels based on source objects from your ViewModel without defining groups in the UI.
  • Groups and panels generated from the LayoutGroup's ItemsSource now support all Docking operations. They can be reordered, removed, made to float or docked into other groups.
  • Our DockLayoutManager no longer removes Layout Groups with the specified ItemsSource from its group collection. When a user closes all panels in such a group, the group remains hidden and appears again if its ItemSource collection is updated.

Gantt

Strip Lines

The DevExpress WPF Gantt control supports 3 strip line types:

  • StripLine - a single strip line that marks a particular date and time range.
  • StripLineRule - allows you to mark multiple date and time ranges based upon a specific rule.
  • CurrentDateTimeStripLine - displays a strip line that points to the current date and time and updates it on-screen in real time.

You can add strip lines manually or retrieve them from a data source (or View Model).

Strip Lines Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Strip Lines - WPF Gantt, DevExpress

Critical Path

The Gantt Control can now automatically calculate and highlight critical paths in the Gantt area. A critical path will automatically update whenever you move tasks or change the task's duration.

Critical Path Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Critical Path - WPF Gantt, DevExpress

Edit Events

With this release, we have added a set of events designed to improve control over end-user actions made within the Gantt area.

These events allow you to do the following:

  • Snap edited date-time values (task start date, finish date, and duration) with any step.
  • Provide visual feedback: highlight tasks that can be linked by an edited connector.
  • Cancel any end user edit action.

Gantt Events Demo
Requires installation of WPF Subscription v19.2. Download

Map

Heatmap Data Provider

v19.2 includes a new cartographic visualization option – a heat map. To create a heat map, use our new data provider (HeatmapProvider) linked to geographical point data (latitude and longitude) and define the heat map color schema using ChoroplethColorizer.

You can also change the following heatmap options: color gradient, opacity and data point radius.

Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Heat map - WinForms and WPF Map Control, DevExpress

In-Memory Image Tile Provider

The ImageTileDataProvider allows you to display custom tile images without saving them locally. You can load image tiles created at runtime from almost any source. To do this, create a bitmap for each tile based on its indices.

See how-to-use-in-memory-image-tile-provider (GitHub Project).
Documentation

Gradient Mode for ColorScaleLegend

This release includes a new EnableGradientScale property. Set this property to true and create a gradual blend between legend color items.

Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Color Scale Legend Gradient Fill - Winforms / WPF Map Control, DevExpress

Navigation

Navigation Frame - API Enhancements

  • The new Navigation.SaveToNavigationJournal attached property allows you to save information about specific navigation steps to the navigation journal.
  • The new NavigationFrame.NavigationCanceled event fires when navigation is canceled in the NavigationFrame.Navigating event handler.
  • Ribbon and Toolbar items now support attached properties.

Breadcrumb History

Like the Windows File Explorer, the Breadcrumb control can now log navigation history and display recently accessed nodes in its drop-down window.

File System Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Accordion Control Enhancements

  • Bind to ICollectionView Sources - allows you to manipulate the current record and define rules for filtering, sorting, and grouping.
  • Unregister any key gesture within the Accordion control using the ClearHotKeys method.

Documentation

Pivot Grid

Aggregation at Any Level

This release includes an optimized Pivot Grid calculation engine for WinForms, WPF and ASP.NET. This new engine provides a more versatile summary expression function. The scope of the function is unbound fields. The Aggr function aggregates data with a specific summary function against a specific set of dimensions. Aggr functions can be nested as needed (you can easily create the desired aggregation level within the Pivot Grid control).

The Aggr function has the following syntax: Aggr(summaryExpression, dimension1, dimension2, ...)

The first argument is a summary expression calculated against a data source field. It is followed by a set of dimensions whose values are grouped to calculate summaries for the first argument.

Learn more about aggregation at any level.

Window Calculations

You can now specify the following window calculation options:

  • Running Totals
  • Moving Calculation
  • Rank
  • Difference
  • Percent Of Total
  • Custom Window Expression

 

Our new object model includes the following classes:

  • RunningTotalBinding
  • MovingCalculationBinding
  • RankBinding
  • DifferenceBinding
  • PercentOfTotalBinding
  • WindowExpressionBinding

These enhancements are available when our new Optimized calculation engine is activated.

Documentation

Direct Data Access in Client Mode

Our data engine loads data to local in-memory storage. This local storage is optimized for frequent calculations with typed data sets and guarantees data integrity. Some large data sets, however, may require require too large a memory footprint (which can, in turn, slow down an application).

With this release, we've added a DirectDataAccessInClientMode option. When the DirectDataAccessInClientMode option is enabled, our calculation engine does not upload source data to temporary storage. This avoids performance degradation in Client mode when working with large volumes of data (and when frequent re-calculations are unnecessary).

This option cannot be used if using the PivotGrid in Legacy mode.

Excel-Style Drop-Down Filter Enhancements

Our new Excel-Style Drop-Down Filter is now used in the Pivot Grid by default. It includes various performance and stability enhancements and can now work with server-side data provided by Server Mode.

Documentation

Rich Text Editor

Hyphenation

Our WPF Rich Text Editor now supports soft hyphens and automatic hyphenation. You can load, print and export documents with soft hyphens. End-users can insert hyphens via Ribbon UI or the Ctrl+- shortcut.

You can also enable automatic hyphenation. To do that, link a dictionary that specifies hyphenation rules.

Documentation

Hyphenation - WPF Rich Text Editor, DevExpress

Track Changes

Our Rich Text Editor allows you to use Track Changes to make revisions in a document. You can access, accept or reject changes in code. New UI elements allow you to enable change tracking and display revisions. Documents with revisions can be printed and exported to PDF.

Blog Post   Documentation

Track Changes - WPF Rich Text Editor, DevExpress

Theme Font Support

Our Word Processing Document API and WinForms / WPF Rich Text Editors support theme fonts. A document theme contains two sets of fonts (Headings and Body) for the entire document. Each set includes font names for different languages.

Scheduler

Time Regions

Time Regions allow you to selectively highlight certain timeframes (time cells).

Time Regions have the same recurrence settings as appointments and can be Resource-specific.

Time Regions Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Time Regions - WPF Scheduler, DevExpress

Appointment Edit Events

New events offer extended control over appointment editing. These events include:

  • AppointmentAdding
  • AppointmentAdded
  • AppointmentRemoving
  • AppointmentRemoved
  • AppointmentEditing
  • AppointmentEdited
  • AppointmentRestoring
  • AppointmentRestored

Appointment Resize Events

New events include:

  • StartAppointmentResize
  • QueryContinueAppointmentResize
  • ResizeAppointmentOver
  • CommitAppointmentResize
  • CompleteAppointmentResize

API Enhancements

  • The new RecurrenceBuilder class allows you to create recurrence patterns in code-behind using a Fluent API style. It comes with a set of markup extensions to create the same recurrence patterns in XAML.
  • The new SchedulerControl.ToolTipMode property allows you to display a tooltip instead of the default appointment flyout.
  • The new brush-based colorization mechanism provides simpler and more flexible customization of labels, status, and resource data. (Learn More)
  • Scheduler View properties can now disable the highlighting of non-working hours and even/odd months. These properties are: DayViewBase.HighlightNonworkingHours, MonthView.HighlightEvenMonths, TimelineView.HighlightNonworkingHours.

Spreadsheet

Excel Binary Workbook (XLSB) Support

The DevExpress Spreadsheet Document API and WinForms / WPF Spreadsheet controls now support the XLSB (BIFF12) format. You can load and save documents using this format.

Documentation

Excel 5.0/95 Workbook (BIFF5) Support

With this release, our WinForms and WPF Spreadsheet controls and Spreadsheet Document API can import documents using the Excel 5.0/95 Binary file format (BIFF5).

Status Bar

v19.2 introduces a Status Bar for our WinForms and WPF Spreadsheet controls. The status bar allows you to zoom (in or out) the current worksheet and displays the following summary information:

  • Number of selected cells (Count)
  • Number of selected cells with numerical values (Numerical Count)
  • Average
  • Minimum value (MIN)
  • Maximum value (MAX)
  • Sum

The integrated Customize Status Bar context menu allows users to display or hide status bar entries. This can also be done in code using our new API.

Documentation

Status Bar - WPF Spreadsheet, DevExpress

Themes

Office 2019 High-Contrast Theme

This release includes a new Microsoft Outlook-inspired High-Contrast theme:

Outlook Inspired Demo
Requires installation of WPF Subscription v19.2. Download

WPF High-Contrast Theme - DevExpress

Palette Theme Cache

With v19.2, you can cache the current palette theme's assembly to load the theme faster in future application runs. The Theme class API allows you to specify the location of cached files and clear the cache when necessary.

Documentation

Theme Designer - Visual Tree and Properties Windows

In v19.2, our WPF Theme Designer introduces Visual Tree and Properties Windows. These new windows allow you to locate a UI element and its properties within XAML more quickly.

Blog Post   Documentation

WPF Theme Designer - Visual Tree and Properties Windows, DevExpress

Windows UI

Hamburger Menu - UI Enhancements

Hamburger Menu UI elements now support the Reveal Highlight effect - an appearance option designed to mimic the look and feel of Windows UI applications. To activate Reveal Highlighting, enable the HamburgerMenu.ShowRevealHighlightEffect option.

Once enabled, the selected Hamburger Menu item displays a vertical bar on its left side to stand out from other items.

Demo
Requires installation of WPF Subscription v19.2. Download

Fluent Design - Reveal Highlight, WPF Controls | DevExpress

Fluent Design - Reveal Highlight (CTP)

You can now add the Reveal Highlight effect to templates used by any WPF control. The RevealHighlightOptions class automatically implements 'Reveal hover' and 'Reveal border' effects based on 'Background' and 'BorderBrush' property values.

Demo
Requires installation of WPF Subscription v19.2. Download

  • xaml
<Border dxwui:RevealHighlightOptions.Mode="BackgroundAndBorder"
    Background="{TemplateBinding Background}"
    BorderBrush="{TemplateBinding BorderBrush}"
    BorderThickness="{TemplateBinding BorderThickness}" />

Fluent Design - Acrylic Window (CTP)

Our Themed Window now supports the Acrylic effect (inspired by Fluent Design's Acrylic material). Acrylic turns the entire window (including the title bar) translucent, adding depth between application windows.

The AcrylicColor and AcrylicOpacity properties allow you to specify the Acrylic effect's color and opacity.

Fluent Design Calculator Demo   Documentation
Requires installation of WPF Subscription v19.2. Download

Fluent Design - Acrylic Window, DevExpress WPF Controls

Windows 10 UWP Controls v19.2

Data Grid

Conditional Formatting

Our Windows 10 Data Grid now supports conditional formatting. Conditional formatting allows you to change the appearance of individual cells and rows based on specific conditions.

Conditional Formatting - UWP Data Grid, DevExpress

Asynchronous Row Rendering

You can now enable the AllowCascadeUpdate option and improve the grid's performance. Visible rows are loaded one by one, in a background thread. To provide visual feedback, our data grid plays an animation during load operations.

Editors

New ComboBox and ListView Controls

Our new ListView and ComboBox controls support item grouping, multiple selection with check boxes, and can work with large data sources (UI virtualization).

TimeSpan Mask Types

The new TimeSpan and TimeSpanAdvancingCaret mask types allow our TextEdit to display and edit TimeSpan values.

TimeSpan Mask Types - UWP Data Editors, DevExpress

NuGet Packages

A NuGet package with our UWP controls is now available via the DevExpress NuGet feed.

ASP.NET Controls v19.2

New Diagram (CTP)

Our new ASP.NET Diagram for WebForms allows you to incorporate information-rich diagrams, flow charts and organization charts with ease. The Diagram control is available as a community technology preview. Features include:

  • 35+ Predefined Shapes
  • Custom Shapes
  • Bind to Any External Data
  • Shape Sizing and Drag-and-Drop
  • Collapsible Containers
  • Auto Layout
  • ReadOnly Mode
  • Configurable Page Settings
  • Export to SVG, PNG and JPEG
  • Zoom and Auto Zoom
  • Full Screen and Simple View Modes

Demo

ASP.NET Diagram - DevExpress

CardView

Edit Form Layout - Customization API

New server-side and client-side API allows you to customize the Edit Form at runtime. You can now specify item caption and toggle item/group visibility on the fly.

Demo: WebForms   Demo: MVC   Documentation

Configurable Data Export

Our new BeforeExport event allows you to configure export settings in code.

Documentation

Real-Time Summary Computation Updates in Batch Edit Mode

Our Data Grid, CardView and Vertical Grid controls can now recalculate summaries on the client-side in batch edit mode. Summaries now reflect all real-time changes to grid cell values.

Documentation

Charting

Waterfall

This release includes a new Waterfall chart type. Waterfall charts can help visualize positive and negative changes to values across a given time period.

Demo   Documentation

Waterfall Series - .NET Charting, DevExpress

Box Plot

This release includes a new Box Plot chart type. Box Plot charts help you visualize data distribution across a six number summary (minimum, first quartile, median, third quartile, maximum and mean). Any data not included between minimum and maximum values are plotted as an outlier with a small circle.

Demo   Documentation

Box Plot - .NET Charting, DevExpress

TimeSpan Axis Scale Support

v19.2 introduces full support for TimeSpan scales. You can plot your TimeSpan data as-is or specify a custom aggregation mode. TimeSpan data can be mapped to an X-Axis, Y-Axis or both.

New Default Appearance Schema

In v19.2, we've updated the default appearance schema for our WebForms and MVC Chart controls.

See details

Default Appearance Schema - ASP.NET WebForms and MVC Chart, DevExpress

Gantt (CTP)

Node Editing

The following edit actions are available:

  • Resize and modify tasks
  • Change dependencies between tasks
  • Edit cell values within the Tree List region. The component immediately saves changes on the server and updates the Gantt chart when cell values change.

Demo

Node Editing - ASP.NET Gantt, DevExpress

Change History

The DevExpress ASP.NET Gantt control stores changes made by an end-user. Changes can be rolled back if necessary.

Real-time Scaling

The DevExpress ASP.NET Gantt control allows you to browse data across various levels of detail. Hold the CTRL key and rotate your mouse scroll wheel to zoom (in or out).

Real-time Scaling - ASP.NET Gantt, DevExpress

GridView

Edit Form Layout - Customization API

New server-side and client-side API allows you to customize the Edit Form at runtime. You can now specify item caption and toggle item/group visibility on the fly.

Documentation

  • c#
protected void grid_EditFormLayoutCreated(object sender, DevExpress.Web.ASPxGridViewEditFormLayoutEventArgs e) {
    ASPxGridView gridView = sender as ASPxGridView;
    LayoutGroup layoutGroupDismissal = (LayoutGroup)e.FindLayoutItemOrGroup("DismissalInformation");
    
    var fireDate = gridView.GetRowValues(e.RowVisibleIndex, "FireDate");
    layoutGroupDismissal.ClientVisible = fireDate != null && (DateTime)fireDate != DateTime.MinValue;
}
  • js
function onDismissalDateChanged(s, e) {
    var dismissalLayoutGroup = clientGrid.GetEditFormLayoutItemOrGroup("DismissalInformation");
    dismissalLayoutGroup.SetVisible(s.GetValue() != null);
}

Edit Form Layout - Customization API, ASP.NET GridView | DevExpress

Configurable Data Export

Our new BeforeExport event allows you to configure export settings in code.

Documentation

Real-Time Summary Computation Updates in Batch Edit Mode

Our Data Grid, CardView and Vertical Grid controls can now recalculate summaries on the client-side in batch edit mode. Summaries now reflect all real-time changes to grid cell values.

Demo: WebForms   Demo: MVC   Documentation

Real-Time Summary Computation Updates in Batch Edit Mode - ASP.NET GridView, DevExpress

New API

Grid Lookup

Our Grid Lookup now offers improved data selection performance when used in server mode (when the component loads the first time on a page).

File Manager

FileManager can now display folders with the same name when connected to a cloud service.

Pivot Grid

Aggregation at Any Level

This release includes an optimized Pivot Grid calculation engine for WinForms, WPF and ASP.NET. This new engine provides a more versatile summary expression function. The scope of the function is unbound fields. The Aggr function aggregates data with a specific summary function against a specific set of dimensions. Aggr functions can be nested as needed (you can easily create the desired aggregation level within the Pivot Grid control).

The Aggr function has the following syntax: Aggr(summaryExpression, dimension1, dimension2, ...)

The first argument is a summary expression calculated against a data source field. It is followed by a set of dimensions whose values are grouped to calculate summaries for the first argument.

Learn more about aggregation at any level

Window Calculations

You can now specify the following window calculation options:

  • Running Totals
  • Moving Calculation
  • Rank
  • Difference
  • Percent Of Total
  • Custom Window Expression

 

Our new object model includes the following classes:

  • RunningTotalBinding
  • MovingCalculationBinding
  • RankBinding
  • DifferenceBinding
  • PercentOfTotalBinding
  • WindowExpressionBinding

These enhancements are available when our new Optimized calculation engine is activated.

Documentation

Direct Data Access in Client Mode

Our data engine loads data to local in-memory storage. This local storage is optimized for frequent calculations with typed data sets and guarantees data integrity. Some large data sets, however, may require require too large a memory footprint (which can, in turn, slow down an application).

With this release, we've added a DirectDataAccessInClientMode option. When the DirectDataAccessInClientMode option is enabled, our calculation engine does not upload source data to temporary storage. This avoids performance degradation in Client mode when working with large volumes of data (and when frequent re-calculations are unnecessary).

This option cannot be used if using the PivotGrid in Legacy mode.

TreeList

Configurable Data Export

Our new BeforeExport event allows you to configure export settings in code.

Documentation

VerticalGrid

Configurable Data Export

Our new BeforeExport event allows you to configure export settings in code.

Documentation

Real-Time Summary Computation Updates in Batch Edit Mode

Our Data Grid, CardView and Vertical Grid controls can now recalculate summaries on the client-side in batch edit mode. Summaries now reflect all real-time changes to grid cell values.

Documentation

Accessibility

Accessibility enhancements allow our GridView, TreeView, File Manager and DateEdit components to better address W3C guidelines and standards.

Data Validation

To improve data integrity, Data Range validation checks data editor values (including editors in the grid's edit form) even if values stay the same.

The SpinEdit, ComboBox and RadioButtonList editors now support null value validation.

ASP.NET Core Controls v19.2

ASP.NET Core 3 Support

Our ASP.NET Core Controls are fully compatible with ASP.NET Core 3. We have also updated our Visual Studio 'Add DevExtreme to the Project' command. It is now compatible with Endpoint routing and the new JSON serialization option introduced in ASP.NET Core 3.

New Gantt (CTP)

Our new ASP.NET Core Gantt control is available as a community technology preview. Built-in features include:

  • resize and modify tasks
  • change dependencies between tasks
  • edit cell values within the TreeList region
  • change history
  • region resizing
  • real-time scaling
  • task selection API

Demo

ASP.NET Core Gantt Control, DevExpress

Diagram (CTP)

Images within Shapes

The Diagram control now provides shapes with images that were specially designed for use in OrgCharts. You can associate an image with the shape via a database or the control's UI. You can also add images to custom shapes.

Demo

Images within Shapes - ASP.NET Core Diagram, DevExpress

Shape Containers

New shape types - horizontal and vertical containers - allow you to combine other shapes within a "container". Our Web Diagram component supports stacked containers and ships with expand and collapse functionality.

Demo

Shape Containers - ASP.NET Core Diagram, DevExpress

New Data Binding Capabilities

We now ship advanced data binding options for shape settings. You can bind all shape properties including shape and connectors style, shape image URL, position, and size to a database.

Full Screen Mode

Our Diagram now supports fullscreen mode. You can add a corresponding toolbar command or use the 'fullscreen' property to enable fullscreen mode within your web app.

Read Only Mode

Read only mode protects the Diagram from edit operations. Use the 'readOnly' property to enable this diagram option.

Demo

Simple View

When you activate our new Simple View mode, the Web Diagram removes gray document borders and its content fully consumes available screen real-estate.

Demo

Simple View - ASP.NET Core Diagram, DevExpress

Zoom

With this release, your end-users can zoom the diagram as needed. To change zoom level, use the 'Zoom Level' editor on the Properties panel or CTRL+Mouse scroll wheel combination. Select the 'Auto Zoom' check box to fit the diagram within the page.

Zoom - ASP.NET Core Diagram, DevExpress

UI Customization

Our new API allows you to toggle the visibility and specify the content of the following UI elements:

Demo

Data Grid and TreeList

Data Grid - Export to Excel API Enhancements (CTP)

Our Export to Excel API (CTP) was first introduced in May 2019. In v19.2, we've added the following new features:

  • Only export selected rows
  • Export with source column width

In addition, the 'group', 'header', 'groupFooter', and 'totalFooter' are now exported with highlighted text (bold).

We've also extended the 'CustomizeCell' callback argument set. You can access all properties of the DataGridCell object within the callback.

View code examples by individual use case

Demo - Advanced Document Customization

Reorder Records/Nodes

End-users can now reorder Data Grid rows and TreeList nodes via drag-and-drop.

Reorder Records/Nodes - Data Grid and TreeList, DevExpress

Asynchronous API Enhancements

With this release, we've enabled asynchronous event handlers for the following events:

File Manager (CTP)

New Progress and Status UI

We've introduced the following UI elements to display the progress and status of file operations:

  • Popup notification messages
  • Enhanced 'Refresh' toolbar item
  • Operation progress side panel

Progress and Status UI - ASP.NET Core File Manager, DevExpress

Integrated Splitter

The built-in splitter control allows you to resize the File Manager's navigation panel.

File Validation Enhancements

We have enhanced the validation capabilities of our File Manager. You can now specify allowed file extensions using the new 'allowedFileExtensions' option. The new 'upload.maxFileSize' option allows you to specify the maximum file size (maximum size allowed).

  • c#
@(Html.DevExtreme().FileManager()
    .FileProvider(provider => provider.Remote()
        .Url(Url.RouteUrl("FileManagementFileSystemApi")))
    .Upload(upload => upload.MaxFileSize(2048000))
    .AllowedFileExtensions(new[] { ".txt", ".xml", ".doc" })
    .Permissions(permissions => {
        permissions.Upload(true);
    })
)

Enable the server-side validation in a controller:

  • c#
public IActionResult FileSystem(FileSystemCommand command, string arguments) {
    var config = new FileSystemConfiguration {
        MaxUploadFileSize = 2048000,
        AllowedFileExtensions = new[] { ".txt", ".xml", ".doc" },
        AllowUpload = true
        ...
    };

    var processor = new FileSystemCommandProcessor(config);
    var result = processor.Execute(command, arguments);

    return result.GetClientCommandResult();
}

Download Files

You can now allow your users to download files. Use the new 'endpointUrl' option to specify your server-side handler endpoint used for download operations.

  • c#
@(Html.DevExtreme().FileManager()
    .FileProvider(provider => provider.Remote()
        .Url(Url.RouteUrl("FileManagementFileSystemApi")))
    .Permissions(permissions => {
        permissions.Download(true);
    })
)

Enable the server-side validation in a controller:

  • c#
public object FileSystem(FileSystemCommand command, string arguments) {
    var config = new FileSystemConfiguration {
        AllowDownload = true
        ...
    };

    var processor = new FileSystemCommandProcessor(config);
    var result = processor.Execute(command, arguments);

    return result.GetClientCommandResult();
}

Demo

Toolbar and Context Menu Customization

You can now customize the File Manager's toolbar and context menu via two new options ('toolbar' and 'contextMenu').

Demo

Custom File Providers

You can now implement a custom File Provider that allows you to connect our client-side File Manager to any custom file management backend.

Demo

Direct File Upload to Cloud Providers

You can now upload files directly to Azure, Amazon and other cloud providers. Use the FileUploader's 'uploadChunk' and 'abortUpload' callbacks.

Demo

Access File Content on the Client-Side

With this release, you can obtain binary file content info within the web browser using the 'FileProvider.getItemContent' method.

Rich Text Editor

RTF Support

Our ASP.NET Core Rich Text Editor can now open and save RTF files.

Localization

With this release, you can use the DevExpress Localization Service to customize resources for our ASP.NET Core Rich Text Editor and Spreadsheet controls.

Spreadsheet

Localization

With this release, you can use the DevExpress Localization Service to customize resources for our ASP.NET Core Rich Text Editor and Spreadsheet controls.

Data Visualization

Discrete Aggregation

This release includes a new 'aggregateByCategory' option. When used, this option changes the way our Chart control aggregates discrete data. If set to "true", the chart control aggregates series points for the same category.

Display Negative Values for Logarithmic Scales

Datasets that contain rapidly growing values with negative and/or zero values can now be visualized within our logarithmic axis.

Display Negative Values for Logarithmic Scales

Custom Legend Item Markers

You can now use a custom template to render Chart legend markers.

Custom Legend Item Markers

Template-Based Tooltip Customization

You can now use templates to customize chart tooltips.

Template-Based Tooltip Customization

Custom Annotations

Our Chart control now supports custom annotations. You can use a template to render the desired content within the annotation container.

Custom Annotations

Custom Text Inside a Donut

With this release, you can include custom SVG markup inside a Donut chart (your content will be placed at the center of Donut/Pie chart).

Custom Text Inside a Donut

Manage Chart Pane Size

You can now control the size of chart panes. Both pixel and percentage units are supported.

Chart Pane Size

Polar Chart with Zoom

To help you create the best possible interactive user experience, we've added zoom support to our Polar Chart.

Polar Chart with Zoom

VectorMap Coordinate Translation API

Thanks to your great feedback, we've introduced two new methods for coordinate translation (VectorMap). With this new API, your apps can now support more sophisticated map interaction usage-scenarios.

Themes

Custom CSS Bundles

You can now bundle CSS styles for UI components used within your application. You can also create multiple bundles of different DevExtreme Color Swatches (which contain different component sets).

UI Controls

Asynchronous Validation

We've added a new Asynchronous Validation Rule to our Validation Engine. You can now use the [Remote] attribute to perform remote data validation by calling server action methods.

When data validation is in progress, DevExtreme data editors display an animation indicator (the indicator turns into a "result" icon once validation is complete).

Asynchronous Validation - ASP.NET Core UI Controls, DevExpress

Data Form - Dynamic Updates without a Full Re-Render

You can customize DevExtreme Data Form item(s) within a group (add/remove/display/hide) without re-rendering the entire form.

Data Form - Dynamic Updates without a Full Re-Render

New Drag-and-Drop Utilities

We now ship a drag-and-drop utilities library so you can implement custom drag-and-drop functionality within your web app.

ASP.NET Core Drag-and-Drop Utilities, DevExpress

Cross-Component Drag&Drop API

This new API allows you to incorporate cross-component drag & drop support.

Floating Button Enhancements

Floating Action Button enhancements include:

  • Add a label to an action
  • Hide an action
  • Reorder actions
  • Expand the speed dial menu in a different direction

Visual Studio Integration

Form Scaffolding Wizard

We added a Form to the list of controls supported by our Visual Studio Scaffolding Wizard. You can now quickly generate forms based on model classes.

DevExtreme Angular Documentation
DevExtreme-based ASP.NET Core Documentation
DevExtreme ASP.NET MVC Documentation

Form Scaffolding Wizard

Async Support in API Controller Scaffolding Wizard

We've improved our API Controller Scaffolding Wizard to better leverage the asynchronous capabilities of Entity Framework and Entity Framework Core. The API Controller Scaffolding Wizard can now generate asynchronous (async-await) code for controller actions.

  • c#
[HttpGet]
public async Task<IActionResult> Get(DataSourceLoadOptions loadOptions) {
    var source = _db.Products.Select(p => new {
        p.ProductId,
        p.ProductName,
        p.UnitPrice
    });

    return Json(await DataSourceLoader.LoadAsync(source, loadOptions));
}

DevExtreme-based ASP.NET Core Documentation

ASP.NET Bootstrap Controls v19.2

GridView and CardView

Configurable Data Export

Our new BeforeExport event allows you to configure export settings in code.

Real-Time Summary Computation Updates in Batch Edit Mode

Our Data Grid, CardView and Vertical Grid controls can now recalculate summaries on the client-side in batch edit mode. Summaries now reflect all real-time changes to grid cell values.

DevExtreme JavaScript Controls v19.2

New Gantt Component (CTP)

Our new Gantt component for Angular, React, Vue and jQuery is available as a community technology preview. Built-in features include:

  • resize and modify tasks
  • change dependencies between tasks
  • edit cell values within the TreeList region
  • change history
  • region resizing
  • real-time scaling
  • task selection API

Demo   Documentation

ASP.NET Core Gantt Control, DevExpress

Data Grid and TreeList

Reorder Records/Nodes

End-users can now reorder Data Grid rows and TreeList nodes via drag-and-drop.

Demo: Data Grid   Demo: TreeList

Reorder Records/Nodes - Data Grid and TreeList, DevExpress

Display Sort Indices for Multi-Column Sorting

Our DataGrid and TreeList controls can now display sort indices within column headers when data is sorted against multiple columns. This feature is optional. Enable it to visually display sort order for your end-users. Deactivate the sorting.showSortIndexes option to hide sort indices.

Demo   Documentation

Display Sort Indices for Multi-Column Sorting

Asynchronous API Enhancements

With this release, we've enabled asynchronous event handlers for the following events:

Export to Excel API Enhancements (CTP)

Our Export to Excel API (CTP) was first introduced in May 2019. In v19.2, we've added the following new features:

  • Only export selected rows
  • Export with source column width

In addition, the 'group', 'header', 'groupFooter', and 'totalFooter' are now exported with highlighted text (bold).

We've also extended the 'CustomizeCell' callback argument set. You can access all properties of the DataGridCell object within the callback.

View code examples by individual use case

Demo - Advanced Document Customization

Diagram (CTP)

Images within Shapes

You can now associate a predefined (or custom) image with the new image shape via a database or the widget's UI. The image will maintain the shape's size and its position when the shape is moved or resized.

Demo

Images within Shapes - JavaScript Diagram, DevExpress

Shape Containers

New shape types - horizontal and vertical containers - allow you to combine other shapes within a "container". Our Web Diagram component supports stacked containers and ships with expand and collapse functionality.

Demo

Shape Containers - JavaScript Diagram, DevExpress

New Data Binding Capabilities

We now ship advanced data binding options for shape settings. You can bind all shape properties including shape and connectors style, shape image URL, position, and size to a database.

Demo

Full Screen Mode

Our Diagram now supports fullscreen mode. You can add a corresponding toolbar command or use the 'fullscreen' property to enable fullscreen mode within your web app.

Documentation

Read Only Mode

Read only mode protects the Diagram from edit operations. Use the 'readOnly' property to enable this diagram option.

Demo   Documentation

Simple View

When you activate our new Simple View mode, the Web Diagram removes gray document borders and its content fully consumes available screen real-estate.

Demo   Documentation

Simple View - JavaScript Diagram, DevExpress

Zoom

With this release, your end-users can zoom the diagram as needed. To change zoom level, use the 'Zoom Level' editor on the Properties panel or CTRL+Mouse scroll wheel combination. Select the 'Auto Zoom' check box to fit the diagram within the page.

Documentation

Zoom - JavaScript Diagram, DevExpress

UI Customization

Our new API allows you to toggle the visibility and specify the content of the following UI elements:

Demo

File Manager (CTP)

New Progress and Status UI

We've introduced the following UI elements to display the progress and status of file operations:

  • Popup notification messages
  • Enhanced 'Refresh' toolbar item
  • Operation progress side panel

Progress and Status UI - JavaScript File Manager, DevExpress

Integrated Splitter

The built-in splitter control allows you to resize the File Manager's navigation panel.

Demo

File Validation Enhancements

We have enhanced the validation capabilities of our File Manager. You can now specify allowed file extensions using the new allowedFileExtensions option. The new upload.maxFileSize option allows you to specify the maximum file size (maximum size allowed).

  • js
{
    allowedFileExtensions: [ ".txt", ".xml", ".doc" ],
    upload: {
        maxFileSize: 2048000
    },
    
    permissions: {
        upload: true
    }
}

If using our ASP.NET server-side extensions, you can enable the following server-side validation:

  • c#
public IActionResult FileSystem(FileSystemCommand command, string arguments) {
    var config = new FileSystemConfiguration {
        MaxUploadFileSize = 2048000,
        AllowedFileExtensions = new[] { ".txt", ".xml", ".doc" },
        AllowUpload = true
        ...
    };

    var processor = new FileSystemCommandProcessor(config);
    var result = processor.Execute(command, arguments);

    return result.GetClientCommandResult();
}

Download Files

You can now allow your users to download files. Use the new endpointUrl option to specify your server-side handler endpoint used for download operations.

  • js
{
    fileProvider: new DevExpress.fileProviders.WebApi({
        endpointUrl: "../api/filesystem"
    }),

    permissions: {
        download: true
    }
}

If using our ASP.NET server-side extensions, you can allow users to download files as shown below:

  • c#
public object FileSystem(FileSystemCommand command, string arguments) {
    var config = new FileSystemConfiguration {
        AllowDownload = true
        ...
    };

    var processor = new FileSystemCommandProcessor(config);
    var result = processor.Execute(command, arguments);

    return result.GetClientCommandResult();
}

Toolbar and Context Menu Customization

You can now customize the File Manager's toolbar and context menu via two new options (toolbar and contextMenu).

Demo

Custom File Providers

You can now implement a custom File Provider that allows you to connect our client-side File Manager to any custom file management backend.

Demo   Documentation

Direct File Upload to Cloud Providers

You can now upload files directly to Azure, Amazon and other cloud providers. Use the FileUploader's uploadChunk and abortUpload callbacks.

Demo

Access File Content on the Client-Side

With this release, you can obtain binary file content info within the web browser using the 'FileProvider.getItemContent' method.

Data Visualization

Custom Annotations

Our Chart widget now supports custom annotations. You can use a template to render the desired content within the annotation container.

Demo   Documentation

Custom Annotations

Custom Text Inside a Donut

With this release, you can include custom SVG markup inside a Donut chart (your content will be placed at the center of Donut/Pie chart).

Demo   Documentation

Custom Text Inside a Donut

Template-Based Tooltip Customization

You can now use templates to customize chart tooltips.

Demo   Documentation

Template-Based Tooltip Customization

Custom Legend Item Markers

You can now use a custom template to render Chart legend markers.

Demo   Documentation

Custom Legend Item Markers

Manage Chart Pane Size

You can now control the size of chart panes. Both pixel and percentage units are supported.

Demo   Documentation

Chart Pane Size

Display Negative Values for Logarithmic Scales

Datasets that contain rapidly growing values with negative and/or zero values can now be visualized within our logarithmic axis.

Demo   Documentation

Display Negative Values for Logarithmic Scales

Discrete Aggregation

This release includes a new aggregateByCategory option. When used, this option changes the way our Chart widget aggregates discrete data. If set to 'true', the chart widget aggregates series points for the same category.

Polar Chart with Zoom

To help you create the best possible interactive user experience, we've added zoom support to our Polar Chart.

Demo   Documentation

Polar Chart with Zoom

VectorMap Coordinate Translation API

Thanks to your great feedback, we've introduced two new methods for coordinate translation (VectorMap). With this new API, your apps can now support more sophisticated map interaction usage-scenarios.

Documentation: convertToXY(longitude, latitude)   Documentation: convertToGeo(x, y)

Themes

Custom CSS Bundles

You can now bundle CSS styles for UI components used within your application. You can also create multiple bundles of different DevExtreme Color Swatches (which contain different component sets).

Documentation

UI Widgets

Asynchronous Validation

We've added a new Asynchronous Validation Rule to our Validation Engine. You can now specify a callback function to perform remote data validation (of any kind).

When data validation is in progress, DevExtreme data editors display an animation indicator (the indicator turns into a "result" icon once validation is complete).

Demo: Validation   Demo: Form Validation

Asynchronous Validation - HTML5 JavaScript UI Widgets, DevExpress

Data Form - Dynamic Updates without a Full Re-Render

You can customize DevExtreme Data Form item(s) within a group or tab (add/remove/display/hide) in code without re-rendering the entire form.

Demo

Data Form - Dynamic Updates without a Full Re-Render

New Drag & Drop Utilities

We now ship a drag-and-drop utilities library so you can implement custom drag-and-drop functionality within your web app.

Demo

Drag and Drop Utilities, DevExtreme

Cross-Component Drag & Drop API

This new API allows you to incorporate cross-component drag-and-drop support.

Demo: Data Grid   Demo: Scheduler   Demo: List

Drag and Drop - Scheduler, DevExpress

Floating Button Enhancements

Floating Action Button enhancements include:

  • Add a label to an action
  • Hide an action
  • Reorder actions
  • Expand the speed dial menu in a different direction

Demo

Floating Button Enhancements - DevExtreme

Angular Ivy Support

DevExtreme Angular Components now support Angular Ivy.

Native React Chart

Chart Rotation

You can now swap X and Y axis as needed.

Demos and Documentation

React Chart Rotation, DevExpress

Native React Grid

Column Size Enhancements

You can now use ‘em' and ‘%' CSS size units to specify column width.

Virtual Table Enhancements

Our Virtual Table plugin includes the following enhancements:

  • Access and track table scroll position via API
  • Banded column mode
  • Lazy loading with record grouping enabled

Inline Cell Editing

Inline cell editing allows end-users to place a grid cell into edit mode when a cell is clicked (without the need to press the edit button within the edit column).

Demos and Documentation

Group Row Summary

You can now display summary information within the group row.

Group Row Summary - React Grid, DevExpress

Native React Scheduler

Today Navigation Button

We've added a 'Today' button to the React Scheduler's navigation panel. This feature was inspired by Google's Calendar. Use this button to quickly navigate to the current date.

Documentation

Today Navigation Button - React Scheduler, DevExpress

Recurring Appointments

You can now specify appointment recurrence patterns in code or allow end-users to configure it via our new React Scheduler Recurring Appointment edit from.

Documentation

React Scheduler - Recurring Appointments, DevExpress

Visual Studio Integration

Form Scaffolding Wizard

We added a Form to the list of controls supported by our Visual Studio Scaffolding Wizard. You can now quickly generate forms based on model classes.

DevExtreme Angular Documentation
DevExtreme-based ASP.NET Core Documentation
DevExtreme ASP.NET MVC Documentation

Form Scaffolding Wizard

Async Support in API Controller Scaffolding Wizard

We've improved our API Controller Scaffolding Wizard to better leverage the asynchronous capabilities of Entity Framework and Entity Framework Core. The API Controller Scaffolding Wizard can now generate asynchronous (async-await) code for controller actions.

DevExtreme-based ASP.NET Core Documentation

  • c#
[HttpGet]
public async Task<IActionResult> Get(DataSourceLoadOptions loadOptions) {
    var source = _db.Products.Select(p => new {
        p.ProductId,
        p.ProductName,
        p.UnitPrice
    });

    return Json(await DataSourceLoader.LoadAsync(source, loadOptions));
}

Blazor UI Components

DevExpress UI for Blazor ships with 15 UI components so you can design rich user experiences for both Blazor server-side and Blazor client-side platforms.

Blazor UI Components Online Demos

Download

DevExpress Blazor UI Components is available on the DevExpress NuGet server. Find your personal NuGet feed URL in the Download Manager and set up Visual Studio's NuGet Package Manager to proceed with installation.

Source Code

Source code is available only for active DXperience and Universal subscribers.

Licensing

The DevExpress UI for Blazor will be part of the DevExpress ASP.NET Subscription. If you own an active ASP.NET, DXperience, or Universal Subscription, all DevExpress Blazor products will be made available to you automatically. If you are a new to DevExpress or if your subscription has lapsed, you can download our first release free of charge.

.NET Reporting v19.2

WinForms Reporting

New Cross Tab Control

Our new Cross Tab report control is now available for those using our Visual Studio report designer and our WinForms End-User Report Designer. While we expect to provide a similar user experience for our Web and WPF report designers in the future, all reports that rely on this new control render perfectly in browser-based and WPF applications.

Cross Tab Report - WinForms Reporting, DevExpress

The Cross Tab control resolves limitations associated with our XRPivotGrid report control and makes cross tab reporting as easy as possible. Its features include:

Design-Time Support

  • A new Cross Tab report type has been added to the Report Wizard.
  • You can define the cross tab layout by dragging fields from the Field List.
  • The RowVisible and ColumnVisible properties allow you to display/hide rows and columns. Invisible region is populated with a hatch brush in the report designer.

Data Binding and Formatting Options

  • Data Cell properties allow you to specify the summary type and the way in which a calculated value correlates to summary values in other cells.
  • Tab Header Cell properties allow you to combine column and row fields into groups and apply the appropriate sort order.
  • You can now pass report parameters to the control's filter string without event handling.
  • You can now conditionally format cells using Expression Bindings.
  • The Cross Tab control supports Report Styles. You can define the appearance of each cell region.

Layout Options

  • Right-to-Left display mode.
  • You can display row or column field headers in the upper left corner of the control or leave it empty.
  • Multiple data field values and their associated headers can be displayed in a row or a column.
  • Row or column totals can be displayed before or after data.
  • The Cross Tab control can be printed in an 'across then down' mode. Pivot data is moved to the next row once it reaches the right page border.
  • Row groups can be printed in a tree-like manner.
  • Repeat column and row headers across page breaks.
  • Cross Tab cells include an Angle property. This allows you to print column and row headers vertically.
  • Column best fit.

You can easily convert the XRPivotGrid to Cross Tab via a smart tag, which includes a new 'Convert to Cross Tab' option.

Demo   Blog Post | Documentation

Parameters Panel - Reset Button Behavior

The default behavior of our reset button has changed. It now reverts parameter values to their defaults.

Report Designer - Enhanced Filter Editor

We've integrated enhanced Filter Editor into Report Designer component. You can now search through data source fields while constructing a filter criterion and use custom expression functions.

Report Designer - Enhanced Filter Editor, .NET Reporting | DevExpress

Data Federation - Union Query Support

Our Federation Data Source now supports Union and UnionAll operations.

See how to bind a report to a union-based Federated Data Source.

Data Federation - Union Support, DevExpress Reporting

End-User Report Designer - Properties Panel Non-Tabbed View

Use the PropertyGridDockPanel.UseTabbedView property to switch the Office-inspired Properties Panel to the non-tabbed view.

Documentation

End-User Report Designer - Properties Panel Non-Tabbed View, .NET Reporting | DevExpress

JSON Data Source - Path Parameters Support

ASP.NET Core and Web Reporting

Web Report Designer - Usability Enhancements

Updated Project Templates

Our Web Report project templates include the following new options:

  • Add Sample JSON Data Connection Storage - Registers a sample data connection storage to create JSON Data Sources in the Report and Data Source Wizards.
  • Add Sample Data Object - Registers a sample data object to create Object Data Sources in the Report and Data Source Wizards.
  • Enable Rich Text Editor - Provides an in-line RTF editor for the Report Designer’s RichText control.

We've also enhanced our report storage implementation across all templates. In previous versions, this implementation relied on REPX files stored in a file storage. With this release, the report storage can also open reports by individual instances and allows you to handle report events as needed.

Documentation

Updated Properties Panel

A square button near each property now indicates whether a property value differs from its default value. This button also allows you to define expression bindings. Once you specify the expression, the button changes its icon to formula (f) and displays the expression in its tooltip.

Documentation

Custom Zoom Factor

You can now input any value in the zoom toolbar editor instead of decreasing or increasing the zoom level by a predefined 5% scale.

Search in Lists

We've added incremental search functionality to the following UI elements:

  • Field List
  • Report Explorer
  • Expression Editor (through 'Report Items' and 'Fields')
  • Report and Data Source Wizards (through SQL queries and object types)

Web Document Viewer – Progress Bar Position

In previous versions, the document generation progress bar was always displayed at the bottom of the Document Viewer and could leave the visible web page area when users scrolled the page. In v19.2, the progress bar retains its position within the visible region (you can now always see the document generation progress).

We've also introduced a new API to customize the progress bar's position and behavior.

Documentation

Rename Custom Queries

You can now define a custom query's name in the Report and Data Source Wizards without invoking the Query Builder dialog.

Sync Report Names and Tab Names

A tab's caption (within the Report Designer) is now updated when you save a report with a different name.

Bind a Report to ObjectDataSource Using the Data Source Wizard

You can now select Object type in the Data Source Wizard and bind a report to a collection of business objects.

In the Data Source Wizard, you can specify the parameter expression (using the Expression Editor) and pass an existing report parameter to the constructor or the method that returns a collection of business objects.

Documentation

Bind a Report to ObjectDataSource - Web Report Designer, DevExpress

In-Place Rich Text Editing

Our XRRichText control allows end-users to edit its contents. Double click the control to activate the editor. The editor's popup provides various text formatting options:

  • Text Alignment
  • Font Style
  • Font
  • Font Size
  • Text Foreground and Background
  • Hyperlinks

Documentation

Web Report Designer - In-Place Rich Text Editing, DevExpress

Script Support

You can now implement and use report scripts in applications that target .NET Core 2.x / 3. Install the Microsoft.CodeAnalysis NuGet package and enable script execution as described in Script Execution Mode.

End-User Report Designer - New Add Parameter Dialog

End-User Report Designer - New Add Parameter Dialog

WPF Reporting

WPF Report Designer - Collapsible Bands

You can now expand and collapse bands in the DevExpress WPF Report Designer.

WPF Report Designer - Collapsible Bands, DevExpress

WPF Report Designer - Enhanced Filter Editor

We've integrated enhanced Filter Editor into our WPF Report Designer component. You can now search through data source fields while constructing a filter criterion and use custom expression functions.

WPF Report Designer - Enhanced Filter Editor, DevExpress

Data Federation - Union Query Support

Our Federation Data Source now supports Union and UnionAll operations.

See how to bind a report to a union-based Federated Data Source.

Data Federation - Union Support, DevExpress Reporting

Parameters Panel - Reset Button Behavior

The default behavior of our reset button has changed. It now reverts parameter values to their defaults.

JSON Data Source - Path Parameters Support

End-User Report Designer - New Add Parameter Dialog

End-User Report Designer - New Add Parameter Dialog

All Platforms

Report Layout - Display Cross-Band Content

In previous builds, DevExpress Reporting printed all bands sequentially (one after another). With this release, you can display bands across two layers. Enable the Page Header or Group Header band's PrintAcrossBands property to display a given band's content in the background layer. As you would expect, all remaining bands will overlay this background layer once your report is generated. This new feature allows you to incorporate extended group/page watermark information or to display group/page-specific information in conjunction with detail records and footer content.

Print Across Bands - .NET Reporting, DevExpress

Print Cross Bands - .NET Reporting, DevExpress

Documentation

Report Layout - Populate Free Space with Blank Rows

When printing on pre-printed forms, a set number of data rows must be printed. If actual report data is less than that needed by the pre-printed form, blank rows must be inserted as necessary.

With this release, we've added a new DetailBand.FillEmptySpace option. Enable this option to populate your report with blank rows.

Documentation

Fill Up Free Space with Blank Rows - .NET Reporting, DevExpress

Parameters - Date Range Parameter

You can now create a DateTime range parameter. The built-in parameter panel displays a Date-Range parameter editor.

Parameters - Date Range Parameter, .NET Reporting | DevExpress

This editor has a customizable list of predefined ranges and displays two DateTime editors for custom start and end dates.

The DateTime range parameter consists of two regular parameters which can be used to filter report data at the data source and report level.

Documentation

Parameters - Define Parameter Values via Expression Binding

You can now define the default parameter value using an expression binding (the DateTime.Now constant).

Report Designer - Re-order Detail Reports in Report Explorer

With integrated Detail Report drag & drop support, your end-users can rearrange detail report hierarchies. You can drag & drop detail report bands within the Report Explorer pane, preserving report band structure.

Documentation

Report Designer - SVG Watermark

With this release, you can use a SVG image as a report's watermark.

Documentation

Crystal Reports Converter Enhancements

Our Reporting.Import tool can now convert formulas, subreports and report bands that have the 'Underlay Following Section' property enabled.

Charting - Filtering Enhancements

You can now use SeriesBase.FilterString and XRChart.Parameters to filter individual chart series.

Report and Dashboard Server

Docker Images

You can now easily deploy our Report & Dashboard Server to a Windows-based machine using the images we published on the Docker Hub.

Export API

Our new Report & Dashboard Server web API allows you to perform the following:

  • Obtain documents generated by a scheduled job
  • Export reports and dashboards to various file formats (e.g. .pdf, .xlsx) on-demand.

Bind Reports and Dashboards to JSON Web Services

You can now create a JSON Data Model, specify its parameters, and use it within our data source wizards.

Documentation

Bind Dashboard to OLAP Cube

You can now create an OLAP Data Model, point it to a specific OLAP cube and use our Dashboard Data Source Wizard to bind dashboard items to OLAP cubes.

Documentation

Analytics Dashboard v19.2

WinForms Dashboard

Asynchronous Data Processing and Rendering

We've created the first version our Dashboard's Asynchronous Data Processing and Rendering Engine for the WinForms platform. As its name implies, this engine was designed to decouple data processing from UI-related threads. Your users will be able to continue using your app while time-consuming operations are performed on the server side.

To switch the Dashboard Viewer/Designer to Async mode, you will simply set its AsyncMode property to true.

Asynchronous Data Processing and Rendering - Dashboard, DevExpress

The advantages of Asynchronous Data Processing:

  • Responsiveness: Dashboard widgets are rendered more quickly. Your application will be more responsive and feel "lighter".
  • Immediate Rendering: Asynchronous data processing helps accelerate dashboard data calculations and rendering. Dashboard Items appear sequentially as they are ready. Data that is processed first appears without waiting for more time-consuming calculations.

Note: If you currently handle control events, please be aware of API changes designed to support the modified lifecycle of the Async data processing.

Read our migration guide to simplify the transition process.

Documentation

New Filter Editor

With this release, we've enhanced our Filter Editors. The new UI renders filter conditions in an easy-to-read format and uses "skin-defined" colors to clearly distinguish between operands and operators.

Filter Editor - WinForms Dashboard, DevExpress

Web Dashboard

Web Dashboard Themes

We now include an extended web theme set to help you generate custom themes. You can use any Generic DevExtreme theme within your project. To explore this new option, open our Web Dashboard Demo and switch between themes using the dropdown button within the Dashboard Title.

Web Dashboard Custom Themes, DevExpress

For those who wish to create a custom Dashboard theme and those who have already created a custom theme using the DevExtreme ThemeBuilder, v19.2 includes our new Dashboard Theme Builder CLI (command line interface).

Our Dashboard Theme Builder CLI is a command line tool based on Node.js and was designed to work together with DevExtreme ThemeBuilder. It allows you to create a custom Web Dashboard theme with ease.

Learn more about our new Theme Builder CLI

Demo   Documentation

Localization via ECMAScript Internationalization API (Intl)

With this release, you can use ECMAScript Internationalization API (Intl) to localize our Web Dashboard. This API is supported by all modern browsers and allows you to simplify the initial configuration of your HTML JS app.

Note
If you use the modular approach for HTML JavaScript Dashboard (Angular, React, Vue) and want to continue using Globalize library for localization, you will need to explicitly reference it. See details in our BC article.

Documentation

Data Inspector (Cross-Platform)

We've created a straightforward UI that allows end-users to inspect the data (underlying or aggregated, at your discretion) used to populate our visualization widgets.

The new UI is available for all supported platforms (WinForms Dashboard, WPF Dashboard, Web Dashboard).

Demo   Documentation

Data Inspector - Dashboard, DevExpress

Line Breaks and Spaces in Calculated Fields (Cross-Platform)

Expression text in Calculated Fields can now contain newline and space characters to improve readability for complex expressions.

Data Processing

Data Federation - Union Operation Support

Our Data Federation Data Source now supports Union operations. When creating a new federated query in our WinForms Wizard, you can select the appropriate operation type – Join, Union or Union All.

Data Federation - Union Operation Support, DevExpress Dashboard

New API allows you to create complex queries when a Federation Data Source performs a Join operation with one data source and a Union operation with another data source. The query is generated as shown in the following code:

  • c#
                        DashboardFederationDataSource federationDataSource = new DashboardFederationDataSource();
                        var msSource = new Source("MSSQL Source", msSqlDataSource, "query");
                        var mySqlSource = new Source("MySQL Source", mySqlDataSource, "query");
                        var excelSource = new Source("Excel Source", excelDataSource, "");

                        var query =
                        msSource.From().Select("ProductName", "CategoryID").Build("MSSQL select")
                        .UnionAll(mySqlSource.From().Select("ProductName", "CategoryID").Build("MySQL select"))
                        .Build("Products union")
                        .From().Select("ProductName")
                        .Join(excelSource, "[Products union].[CategoryID] = [Excel Source].[CategoryID]").Select("CategoryName")
                        .Build("query");
                        federationDataSource.Queries.Add(query);

Window Function for Calc Fields

v19.2 ships with a new w function that allows you to use Window Functions on intermediate aggregation levels.

To better illustrate this concept, see Intermediate Level Window Functions for Dashboard Users. This article gives examples of various aggregation types so you can compare and analyze.

Extract Data Source API

We extended our Extract Data Source API and made it easier to update your Extract File in the concurrent multi-user request world of the web.

In v19.2 you can use the following straightforward API:

  • c#
                        DashboardExtractDataSource.UpdateFile(
                        extractDS,
                        (_, result) => logger.Log("onDataUpdated", result),
                        (_, result) => logger.Log("onFileUpdated", result));
                        extractDS.Dispose();
                        //or use WinForms / WPF control's method
                        dashboardDesigner1.UpdateExtractDataSourcesAsync(
                        (_, result) => logger.Log("onDataUpdated", result),
                        (_, result) => logger.Log("onFileUpdated", result))
                        );

Behind the scenes, we redirect data requests to a new file and delete the old file when it is no longer necessary. This operation is seamless. No additional thread synchronization tasks are required on your end.

JSON Data Source

Use our new JSON Data Source to feed JSON data to DevExpress Dashboard - across every supported platform. End-users can create a JSON data source with the Data Source Wizard available in our WinForms Designer and Web Dashboard.

You can use the new DashboardJsonDataSource class to create the JSON data source in code.

Documentation

JSON - Data Source Wizard, DevExpress Dashboard

XPO Data Source

DevExpress Dashboard now supports XPO Data Source. You can bind your XPOBusiness Model to DevExpress Dashboard (feel free to use our WinForms Dashboard Wizard for this task).

You can also instantiate the DashboardXpoDataSource in code and add it to your dashboard / data source storage as follows:

  • c#
                        DashboardXpoDataSource dataSource = new DashboardXpoDataSource(){ ConnectionStringName = "nwind"; };

                        dataSource.SetEntityType(typeof(Products));

Documentation

Office File API v19.2

.NET Core Enhancements

The DevExpress Office File API for .NET Core supports the following new features:

  • Ability to embed fonts in exported PDF files (Linux)
  • Complex Text Layout support in both our Word Processing Document API and PDF Document API (Windows and Linux). You can now export (to PDF) documents that use RTL languages (Arabic, Hebrew, etc.)

PDF Document API

Custom Properties

With this release, you can access and modify a document's custom property collection. Use PdfDocument.CustomProperties to access the collection. You can add and delete custom properties or change associated names or values as needed.

Documentation

CCITT T.4 and CCITT T.6 TIFF Support

Our PDF Document API now allows you to directly embed TIFF images with CCITT T.4 or CCITT T.6 compression within a PDF document.

Spreadsheet Document API

Excel Binary Workbook (XLSB) Support

The DevExpress Spreadsheet Document API and WinForms / WPF Spreadsheet controls now support the XLSB (BIFF12) format. You can load and save documents using this format.

Excel 5.0/95 Workbook (BIFF5) Support

With this release, our WinForms and WPF Spreadsheet controls and Spreadsheet Document API can import documents using the Excel 5.0/95 Binary file format (BIFF5).

Print / Export To PDF Individual Sheets

We've added new Workbook.Print and Workbook.ExportToPdf method overloads to print or export to PDF sheets with the specified names.

Asynchronous Load and Save

Our new API allows you to load, save, and export workbooks to PDF and HTML asynchronously:

Enhanced Column Width Calculation for Printed Workbooks

We now calculate column widths more accurately for printed/exported (to PDF) workbooks. The resulting printout closely mirrors the print output of Microsoft Excel.

Note: This enhancement is only available if our new Spreadsheet layout engine is enabled.

Word Processing Document API

Hyphenation

Our Word Processing Document API now supports soft hyphens and automatic hyphenation. You can load, print and export documents with soft hyphens. Link a dictionary that specifies hyphenation rules to enable automatic hyphenation.

Documentation

Track Changes

Our Word Processing Document API can now retrieve, accept or reject revisions made in a document via Track Changes. Documents with revisions can also be printed and exported to PDF.

Blog Post   Documentation

Track Changes - Office File API, DevExpress

Theme Fonts Support

Our Word Processing Document API and WinForms / WPF Rich Text Editors support theme fonts. A document theme contains two sets of fonts (Headings and Body) for the entire document. Each set includes font names for different languages.

XAF - App Framework v19.2

ASP.NET Enhancements

Batch Edit Support for Reference and ImmediatePostData Properties in ASPxGridListEditor

Reference and ImmediatePostData properties now support our ASPxGridView's Batch Edit mode.

Documentation | GitHub Example

Batch Edit Support for Reference and ImmediatePostData Properties in ASPxGridListEditor - XAF, DevExpress

ASP.NET WebForms Spreadsheet Editor

XAF's Office module now supports the DevExpress ASP.NET Spreadsheet control. You can use it to display and edit Excel documents (stored in the byte array properties of your business objects).

Documentation

ASP.NET WebForms Spreadsheet Editor - XAF, DevExpress

Core Enhancements

Asynchronous Method Support in IObjectSpace

v19.2 introduces a new ORM-agnostic IObjectSpaceAsync interface. XPObjectSpace implements this interface's asynchronous methods.

The new API allows you to execute database operations and await completion without blocking app code execution. This allows you to deliver more responsive solutions - even when connected to remote databases over slow networks.

How to perform async operations in XAF WinForms apps using IObjectSpaceAsync

.NET Standard 2.0 Support for Platform-Agnostic Modules

The following core libraries only provide non-visual APIs and do not offer a pre-built UI (like XAF modules for WinForms and WebForms):

  • DevExpress.ExpressApp | DevExpress.ExpressApp.Xpo | DevExpress.ExpressApp.Objects | DevExpress.ExpressApp.Images. DevExpress.Persistent.Base | DevExpress.Persistent.BaseImpl.
  • DevExpress.ExpressApp.Security | DevExpress.ExpressApp.Security.Xpo.
  • DevExpress.ExpressApp.Validation | DevExpress.ExpressApp.ConditionalAppearance.
  • DevExpress.ExpressApp.AuditTrail | DevExpress.ExpressApp.CloneObject.
  • DevExpress.ExpressApp.Kpi | DevExpress.ExpressApp.StateMachine | DevExpress.ExpressApp.ViewVariantsModule.

These libraries should be helpful to XAF developers who create cross-platform non-XAF .NET apps and libraries. You can now reuse existing XAF data models and Security System settings (users, roles and permissions) in a custom Xamarin mobile client or an ASP.NET Core service hosted on Linux-based servers.

Documentation

Security System in non-XAF .NET Apps (Powered by XPO)

We now include CRUD demos and tutorials that help explain XAF's security system and how it can be used in non-XAF .NET apps for different platforms.

Security System in non-XAF .NET Apps (Powered by XPO), DevExpress

Performance Enhancements

Performance and Stability Enhancements (Design-Time)

XAF's Model Editor, Application and Module Designers are now faster and require less memory. We've also reimplemented Visual Studio's ITypeDiscoveryService, because its GetTypes method caused problems, especially for complex apps.

KB Article

WinForms UI Enhancements

.NET Core 3 Desktop SDK Support in WinForms Apps

You can build and run desktop XAF applications on .NET Core 3.0. All desktop modules (except obsolete modules and those that rely on deprecated functionality - such as the Windows Workflow Foundation) are already supported. XAF for .NET Core is available as a Community Tech Preview (CTP).

Documentation

Improved Usability of Layout Groups in WinForms and WebForms

We implemented collapsible layout groups for WinForms. We also replaced the IModelLayoutGroupWeb.IsCollapsibleCardGroup and IModelLayoutGroupWeb.IsCardGroupCollapsed properties with new platform-agnostic options: IModelLayoutGroup.IsCollapsibleGroup and IModelLayoutGroup.IsGroupCollapsed.

Documentation

Improved Usability of Layout Groups in WinForms and WebForms - XAF, DevExpress

Data Access v19.2

XPO - ORM Library

.NET Core 3 Desktop SDK Support in WinForms & WPF Apps

XPO for .NET Core 3.0 (WinForms and WPF apps) can be added using DevExpress.WindowsDesktop.* packages from our NuGet feed.

Documentation   Tutorial: Get Started witn .NET Core

ORM Data Model Designer & Wizard Enhancements

Our designer can now store connection strings in appsettings.json, generate JSON serialization and Dependency Injection extensions (all of which are very important for .NET Core projects). We also gave the designer a slight face-lift and added more meaningful error messages/text.

Documentation   Blog Post

ORM Data Model Designer and Wizard Enhancements, DevExpress

Custom Aggregates for Persistent Objects

In addition to predefined aggregates (Sum, Count, Min, Max, Avg, Single, Exists), XPO users can now implement custom aggregates. At this stage, you can use them to query data with XPO using XPQuery and with data sources that support CriteriaOperator.

Documentation   GitHub Example

XPO Data Source for DevExpress Dashboard

We created a DashboardXpoDataSource component to help XPO users bind their persistent class data to DevExpress Dashboard. You can configure the new component in code or use the built-in dashboard designer.

Documentation   GitHub Example (Runtime)   GitHub Example (Design-Time)

New XPO Demos and Tutorials for Different Platforms

New CRUD demos and tutorials help demonstrate XPO ORM best practices and how XPO can be used in .NET apps across different platforms. We've also added a new WinForms tutorial.

GitHub Example

XPServerModeView and XPInstantFeedbackView (RTM)

Our new read-only server mode components - XPServerModeView and XPInstantFeedbackView, are mixtures of XPServerCollectionSource/XPInstantFeedbackSource and XPView for use with DevExpress Grid controls.

To help you get started with our new XPO data sources, we've integrated them into our Data Source Wizard (available for the DevExpress WinForms Data Grid and other visual components).

LINQ Enhancements

  • XPQuery now supports the SelectMany(collectionSelector, resultSelector) overload with two arguments - this simplifies LINQ queries for collections, especially many-to-many associations. In certain instances, it helps eliminate the need for the Join method.
    • c#
    new XPQuery<Test>()
    .Where(c => c.Name == "2")
    .OrderBy(c => c.Oid)
    .SelectMany(c => c.ManyToManyCollection,
        (t, c) => new {
            Test = t, ManyToManyCollectionElement = c
        }
    )
    .OrderBy(tc => tc.ManyToManyCollectionElement.SubName);
    
  • XPQuery supports the new WithDeleted option when it is initialized with a Session-based constructor.
    • c#
                                    unitOfWork.Query<Employee>()
                                    .WithDeleted()
                                    .Where(e => e.Name == null).ToList();
    

Documentation   Blog Post

CodeRush for Visual Studio v19.2

RushNav for VS Code

This release introduces the RushNav extension for VS Code. RushNav is a powerful new free navigation tool helping you jump to TypeScript type declarations and references with ease. RushNav also allows you to mark required parts of your code with markers and bookmarks to return to these locations at any time.

Install   Blog Post

CodeRush Server

Install Free Preview

New Code Analysis Diagnostics

We have extended the set of code analysis rules. CodeRush Server can now detect:

  • Local unused variables that can be safely deleted.

    Code Analysis Diagnostics

  • Unused or assigned–only variables which can be replaced with a discard.

    Code Analysis Diagnostics

  • Redundant field initialization values which can be safely removed.

    Code Analysis Diagnostics

  • Type names that differ from the file name. These types can be moved to a new file (with the same name as the type) to improve code readability and discoverability.

    Code Analysis Diagnostics

  • Type names that do not match the name of the files containing them.

    Code Analysis Diagnostics

  • "\r\n" string values, which can be converted to Environment.NewLine calls.

    Code Analysis Diagnostics

  • String comparison expressions which can be replaced with a String.Compare call

    Code Analysis Diagnostics

  • Expressions that test a string for null (or "Nothing" in Visual Basic) or an empty value, which can be replaced with a String.IsNullOrEmpty call.

    Code Analysis Diagnostics

  • Composed string expressions which can be converted to interpolated strings.

    Code Analysis Diagnostics

New Refactorings

Inline Lambda

This refactoring сreates a lambda expression and inlines the referenced delegate.

Documentation

Inline Lambda - CodeRush, DevExpress

Declare Partial Class Part

The "Declare Partial Class Part" refactoring creates a class part in a new file (for the active class), declaring both classes as partial.

Declare Partial Class Part - CodeRush, DevExpress

Import Missing Namespaces

"Import Missing Namespaces" adds using directives for each type with a missing namespace reference in the file. This refactoring is only available in Visual Studio 2019. "Import Missing Namespaces" works inside a selected code block or for an active code element (based on caret position).

Import Missing Namespaces - CodeRush, DevExpress

Remove Unused Variables

To help you remove unused variables from your code:

We have also added the Discard Variable refactoring that replaces unused or assigned-only variables with a discard.

Remove Unused Variables - CodeRush, DevExpress

Remove Unused Type and Parameters

You can now use the Remove Unused Type and Remove Unused Parameter refactorings to quickly remove the corresponding unused types or parameters.

The following screencast shows Remove Unused Type in action:

Remove Unused Type and Parameters - CodeRush, DevExpress

Documentation

Code Cleanup

Remove Unused Variables, Types and Parameters

If you want to remove unused variables, types, and parameters across multiple files at once, you can use the Code Cleanup feature with the following rules enabled:

  • Remove unused variables
  • Replace unused variables with discard
  • Remove unused types
  • Remove unused private types
  • Remove unused parameters

Code Cleanup - CodeRush, DevExpress

Improved Code Cleanup Options Page

We have completely redesigned the Code Cleanup options page. Providers now are grouped by categories. You can quickly find a required code provider specifying its name in the search field.

We have added the following options for each code action:

  • Apply in Action - allows you to select which code cleanup actions will be executed when you explicitly call code cleanup.
  • Apply on Save - allows you to select which code cleanup actions will be applied before files are saved.

Improved Code Cleanup Options Page - CodeRush, DevExpress

Code Analysis

This release gets the following new code analysis diagnostics:

  • Unused local variable - identifies local variables which are never used in your code and can be safely deleted.

    Code Analysis Enhancement

  • Local variable can be replaced with discard - identifies unused or assigned-only variables which can be replaced with a discard.

    Code Analysis Enhancement

  • Redundant field initialization - identifies redundant field initialization values which can be safely removed.

    Code Analysis Enhancement

  • The type can be moved to a separate file - identifies types whose name differ from the file name. These types can be moved to a new file (with the same name as the type) to improve code readability and discoverability.

    Code Analysis Enhancement

  • The type name does not correspond to the file name - this issue appears in the Code Issues window if a type name does not match the name of the file that contains it.

    Code Analysis Enhancement

  • Environment.NewLine can be used - identifies "\r\n" string values, which can be replaced with Environment.NewLine calls.

    Code Analysis Enhancement

  • String.Compare can be used - identifies string comparison expressions which can be replaced with a String.Compare call.

    Code Analysis Enhancement

  • String.IsNullOrEmpty can be used - identifies expressions that test a string for null (or “Nothing” in Visual Basic) or an empty value, which can be replaced with a String.IsNullOrEmpty call.

    Code Analysis Enhancement

  • String interpolation can be used - identifies composed string expressions which can be converted to interpolated strings.

    Code Analysis Enhancement

Documentation

Organize Members

  • We have added the "Explicit interface implementations" rule to the Default rule set.

    Organize Members - CodeRush, DevExpress

  • Static constructors and explicitly-implemented interface members are now sorted correctly in the StyleCop scheme.

  • Member rules are now applied based on the "Rule priority" option value, followed by rule order.

    Organize Members - CodeRush, DevExpress

  • Ability to wrap sorted groups in dynamic regions with built-in variables using the "Wrap distinct groups in regions" option.

Code Formatting

This release introduces new options for Other options pages.

Indent Options

The following options allow you to align comments and directives with their surrounded/following content:

  • Indent comments started at the first column
  • Indent region directives started at the first column
  • Indent conditional compilation directives started at the first column
  • Indent other directives started at the first column

Code Formatting - Indent Options, CodeRush | DevExpress

XML Documentation Comments Options

  • Wrap comments at column
    This option wraps comment long lines exceeding the specified column width.

  • Content Indent
    You can specify the indentation of content within XML tags.

You can now easily add or remove a single space in documentation lines and within tags with the following:

  • Documentation lines should begin with a single space
  • Add a space before self-closing tag
  • Add a space after opening tag and before closing tag

We have also added options to place tags on separate lines:

  • Place summary tags on separate lines
  • Place all tags on separate lines

XML Documentation Comments Options - CodeRush, DevExpress

Code Places

TypeScript / JavaScript Support

Code Places now works in JavaScript and TypeScript code:

TypeScript / JavaScript Support - CodeRush, DevExpress

Favorite Code Places

You can favorite code places and access them instantly in the Favorites tab. Favorite places are saved across sessions.

Favorite Code Places - CodeRush, DevExpress

To favorite a code place, right-click a desired member in the File Places tab, and select Add to Favorites. In the context menu, select "Add to new group" and enter a group name in the New Favorites Group dialog and press Enter.

Favorite Code Places - CodeRush, DevExpress

You can also add code places to existing favorite groups. Right-click a code place in the File Places tab, and select the desired group in the Add to Favorites sub menu.

Favorite Code Places - CodeRush, DevExpress

Documentation

Sort Code Places

Starting with this release, CodeRush allows you to sort code places with the following criteria:

  • As Is (sorts members by the order in which they appear in the file)
  • By Name (sorts members alphabetically)
  • By Kind, then Name (sorts members by kind and then alphabetically)
  • By Accessibility, by Kind, then Name (sorts members by accessibility, kind, and then alphabetically)
  • By Kind, by Accessibility, then Name (sorts members by kind, accessibility, and then alphabetically).

You can configure code places sorting using the "Sort Code Places" option on the "Navigation | Code Places" options page.

Navigate to Member Body

Jump to member bodies by holding down the Alt key while clicking entries in the code places list.

Navigate to Member Body - CodeRush, DevExpress

Improved Performance for Large Files

We have significantly improved Code Places performance for large files (files with more than 3000 lines of code) in the following scenarios:

  • Opening/closing documents
  • Moving the caret through documents
  • Switching between documents

Miscellaneous

Selection Expand/Reduce Enhancement

When using the Selection Expand/Reduce feature you can see a code preview in the code editor if a portion of the selected code falls outside the boundaries of the code editor.

Selection Expand/Reduce Enhancement - CodeRush, DevExpress

To enable this new code preview, go to the Editor | All Languages | Selection options page and enable the "Show code preview hints when selection changes" option.

Selection Expand/Reduce Enhancement - CodeRush, DevExpress

VCL Controls v19.2 Beta

Grid Control

New ORM-Based Table View

The VCL Grid Control ships with a new Table View that leverages our ExpressEntityMapping Framework and its superior data management capabilities. Like Server Mode Views, this View executes data-aware operations on the database side, allowing you to display large datasets at blazing fast speeds. In addition, the new View supports data editing and Master-Detail layouts.

v19.2 also includes a new Data Source component that binds the View directly to an entity.

Calculated Fields

With this release, the VCL Grid, TreeList, and Vertical Grid controls allow you to calculate cell values (referenced as fields) for unbound columns/rows using formulas written as string expressions. Formulas can include any number of fields, constants, operators, and functions.

  • Delphi
tvOrdersTotal.DataBinding.Expression := '[Unit Price] * [Quantity] * [Discount] / 100';

You can use our Expression Editor (with auto-complete support) to customize formulas at both design and runtime.

VCL Grid, TreeList, and Vertical Grid Controls - Expression Editor for Calculated Fields, DevExpress


Note: This feature uses our VCL Spreadsheet's formula engine to parse and evaluate formulas.

Scrollbar Annotations

Our Grid, TreeList, and Vertical Grid controls now support scrollbar annotations - colored markers arranged along the vertical scrollbar (or the horizontal scrollbar in the Vertical Grid control). Scrollbar annotations allow you to visualize:

  • Rows that match search results
  • Rows with validation errors
  • Focused/selected rows
  • Custom data, including hints

Users can click an annotation to bring the associated row into view.

VCL Grid, TreeList, and Vertical Grid Controls - Scrollbar Annotations, DevExpress

Extended Search Capabilities

Search Mode

The DevExpress VCL Grid, TreeList, and Vertical Grid controls now offer a unique "Search" mode option. When "Search" mode is used, our controls highlight text matches within rows (non-matching values are never hidden). The Find Panel provides built-in support for this new option and displays Next/Previous buttons for quick navigation within results. When combined with scrollbar annotations, our Find Panel allows you to replicate the search behavior of modern IDEs and browsers.

VCL Grid, TreeList, and Vertical Grid Controls - Search Mode, DevExpress

Find Panel Enhancements

  • You can now switch between Filter and Search modes.
  • You can now search in group rows and preview sections.

NavBar Control

Hamburger Menu

This release includes a new skin-based View with a collapsed state. Our new Hamburger Menu allows you to deliver user experiences that mirror those found in Windows 10 (displays a button or a narrow strip of icons when collapsed). As a hybrid of our Accordion View and Navigation Pane View, the Hamburger Menu ships with features common to the Accordion/Navigation Pane, including nested groups and expand/collapse animation effects.

New Formatted Label

The DevExpress ExpressEditors Library now ships with a Formatted Label that allows you to display text formatted via BBCode-inspired markup tags. The following formatting options are available:

  • Font face, style, and size
  • Foreground and background colors
  • Subscript and superscript characters
  • Hyperlinks

Either add/modify markup tags as plain text or allow the Formatted Label to convert RTF text as necessary.

  • Delphi
dxFormattedLabel1.Caption := '[B]Questions?'#13#10'[/B]Visit our [URL=https://www.devexpress.com/support/]Support Center[/URL]';

VCL Formatted Label, DevExpress


Unbound, data-aware, standalone, and in-place versions of the Formatted Label are available. The unbound version includes a design-time WYSIWYG editor for bidirectional RTF-to-markup conversion.

VCL Formatted Label - Design-Time Editor, DevExpress

DPI Awareness

Per-monitor DPI Awareness v2 Support

With this release, we've added per-monitor DPI awareness v2 support to our VCL products, utility applications, and demos (for native Windows style). This option allows UI elements to scale differently based upon the DPI factor applied to the display/monitor. The new feature will be available for Windows 10 systems (build 1703 or newer).

Scheduler

Performance Enhancements

  • Our enhanced Week and Month Views can now navigate dates, load events and scroll data 120 to 250 times faster than previous versions.
  • Our enhanced TimeGrid View can now scroll events, scroll resources, select events and execute drag & drop operations nine to thirteen times faster than previous versions.
  • Our enhanced Day View can now navigate dates, select events, and execute scroll operations twice as fast as previous versions.

Minor Enhancements

  • Agenda View - You can now hide event descriptions.
  • Agenda View - You can create an event via the popup menu displayed for multiple days selected in the scheduling area
  • Day View – You can now scroll the all-day event region using the mouse wheel.
  • TcxSchedulerDBStorage - The resource container includes properties that allow you to specify dataset fields bound to a resource's Visible, WorkDays, WorkStart, and WorkFinish properties.

Layout Control

New Check Box and Radio Button Items

These new items are a lightweight replacement to standard VCL and DevExpress check box and radio button controls. Because of our optimized painting algorithms, these new layout items improve load times when compared to use of embedded controls. Painting is now up to seven times faster.

Design-Time Control Conversion

We've added a design-time dialog to help you convert embedded controls to their built-in counterparts. To display the dialog, invoke the layout control's context menu and select "Convert Embedded Controls".

Layout Control - Design-Time Control Conversion, DevExpress

Spreadsheet

Right-To-Left Support

This release adds Right-to-Left (RTL) support to UI elements and worksheet content. We've also added an option to switch the direction of individual worksheets.

VCL Spreadsheet Control - Right-To-Left Support, DevExpress


To enable RTL text in your application, switch its BiDiMode property to bdRightToLeft.

Performance Enhancements

  • Our optimized formula parser allows formula-heavy documents to load approximately twice as fast (when compared to previous versions).
  • "Unique Values" and "Duplicate Values" conditional formatting rules are now applied two to ten times faster (when compared to previous versions).

Miscellaneous

We've replaced the rendering engine used for rich text formatted content with the formatted label introduced in this release. This change removes the VCL Rich Edit Control dependency from the VCL Spreadsheet control and our data export methods, allowing you to reduce overall application size and memory consumption.

Xamarin.Forms Controls v19.2

Charts

New Data Adapters for Cartesian and Pie Charts

v19.2 ships with new data adapters for Cartesian and Pie series:

  • SeriesDataAdapter
  • PieSeriesDataAdapter
  • CalculatedSeriesDataAdapter.

New adapters support data collections that implement IBindingList or INotifyCollectionChanged, and allow you to bind to IList, IList<T>, and DataTable collections directly. You don't have to implement a custom data adapter.

Multiple Axes

DevExpress Xamarin.Forms Сharts now support multiple axes for improved comparative analysis.

Secondary Axis - Xamarin.Forms Charts, DevExpress

Performance Enhancements

We have significantly improved the data processing performance of our Xamarin Charting Library. Data is now loaded at least 10x times faster than in previous builds. Loading speed nearly equals that of our native charting component for iOS and Android. For instance, you can now easily process more than 500,000 points without significant UI delay.

Performance Metrics - Xamarin.Forms Charts, DevExpress

Miscellaneous Enhancements

We've implemented two new options for axes to help you improve the layout of your data on the chart. You can do the following:

  • Hide ranges with no data from the DateTime axis
  • Set an axis to take up only a portion of the full axis length.

Axis Enhancements - Xamarin.Forms Charts, DevExpress

 

You can now choose the behavior of bar labels:

  • the label stays at the fixed position of the bar;
  • the label moves along the bar.

Xamarin.Forms Chart - DevExpress

Data Grid

Templates

With this release, you can use templates to extend the look and feel of the following grid elements:

  • Column Header
  • Group Row, Group Row Caption
  • Group Summary
  • Total Summary
  • Swipe Item

Documentation

Full Swipe Action

This new option allows you to specify whether a full swipe across the row performs the first action from the 'StartSwipeItems' or 'EndSwipeItems' collection.

Input Validation and Error Indication

You can now specify your validation rules and limit the values that can be entered into data cells. Use the visualization power of the Xamarin.Forms Data Grid to provide user feedback when data does not pass rule tests.

Documentation

Input Validation - Xamarin.Forms Data Grid, DevExpress

Line Break for Data Cells and Column Headers

Text cells and column headers now support line breaks (the TextColumn.LineBreakMode and GridColumn.HeaderCaptionLineBreakMode properties).

Multi-Line Edit Mode for Text Cells

Text cells can be edited in multi-line display mode.

Multi-Line Edit Mode for Text Cells - Xamarin.Forms Data Grid, DevExpress

Custom Group Row Height

Use the DataGridView.GroupRowHeight property to change the height of group rows.

Scrollbar Visibility

The following options allow you to display or hide scrollbars as needed:

Navigation

New TabPage Control

Our new Xamarin.Forms TabPage control implements tab navigation through a collection of pages at the application's root level.

Documentation

Xamarin.Forms TabPage Control - DevExpress

New DrawerPage Control

The DrawerPage is a page with a built-in drawer - a pane that slides out from the edge of the page and often includes the application's main navigation menu or settings.

Documentation

Xamarin.Forms DrawerPage Control - DevExpress

Scheduler

Scheduler View Components

We changed our Scheduler View implementation by creating separate UI View components for each Scheduler View type (Day View, Week View, Work Week View, Month View).

You can now place a specific view on a page instead of using our old SchedulerView component (used for all view types). Scheduler Views obtain data from a local or shared storage (SchedulerDataStorage) source.

Documentation

Event Reminder API

An Event Reminder API is now available. You can plug appointment reminders into the iOS and Android alarm system using the RemindersChanged event and the GetNextReminders method of the data storage object.

Documentation

Time Zone Support

Our Xamarin.Forms Scheduler ships with time zone support. You can specify a working time zone (the data storage’s TimeZone property) for the scheduler as a whole or control time zone settings for each appointment individually. You can edit time zone information within the default Edit Appointment page.

Documentation

Time Zone Support - Xamarin.Forms Scheduler, DevExpress

Native User Interface Controls v19.2

Charts for iOS, Android and Xamarin

Multiple Axes

Our Сhart control now supports multiple axes for improved comparative analysis.

Secondary Axis - Xamarin, Android and iOS Charts, DevExpress

Miscellaneous Enhancements

We've implemented two new options for axes to help you improve the layout of your data on the chart. You can do the following:

  • Hide ranges with no data from the DateTime axis
  • Set an axis to take up only a portion of the full axis length.

Axis Enhancements - Xamarin, Android and iOS Charts, DevExpress

 

You can now choose the behavior of bar labels:

  • the label stays at the fixed position of the bar;
  • the label moves along the bar.

Xamarin, Android and iOS Charts - DevExpress