WinForms – Early Access Preview (v19.1)

15 March 2019

We are about two months away from the official v19.1 launch, so we wanted to share our progress and let you test major new functionality before we wrap up another development cycle. If you own an active Universal or DXperience subscription, you can download the CTP build from the DevExpress Download Manager and test the features described in this blog post. Do let us know how well the new features address your requirements, since your feedback will help us fine-tune our code before launch. You can share your thoughts via our Support Center, the comments section below, or by emailing us at winformsteam@devexpress.com.

If you are using a trial version and would like to access these new features today, purchase a Universal or DXperience subscription license and you will automatically receive access to the CTP version. If you are ready to upgrade to Universal or DXperience from another subscription level, email us at clientservices@devexpress.com for preferential upgrade pricing.

We’ve prepared a list of the new functionality that is ready for further testing, along with brief description of each features and some testing guidance. We shall be publishing separate in-depth blog posts on these features shortly, so stay tuned!

Visual Studio 2019 Support

You may have seen our announcement about Visual Studio 2019 support in version 18.2 of our components. However, since this version was released before the newest Microsoft IDE became available, our installation used standard synchronous packages as we had done for all previous versions of Visual Studio. For VS2019 though, this decision caused the IDE to show notifications about DevExpress extensions causing performance to be slowed down.

Version 19.1 is different. It has been designed and built with all the up-to-date Visual Studio 2019 requirements in mind and is fully compatible with this IDE. The newest version of DevExpress controls uses asynchronous packages, and these have no impact on the IDE performance.

How to test: launch Visual Studio 2019 and enjoy a smooth experience with DevExpress controls!

Data Grid - New Search Panel Options

Two new settings allow you to change how Data Grid parses text strings entered in the Find Panel.

How to test: run the Find Panel demo and play around typing various text combinations in the Find Panel. Try changing the ParserKind and Condition properties located in the Options → Behavior section of the demo and see how this affects the results. Use the OptionsFind.ParserKind and OptionsFind.Condition properties to change these options from code.

Transition Manager - DirectX-based Animations

Any transition animations that have been shipped with the Transition Manager component can now be rendered using our DirectX engine. DirectX-based animations yield better performance results and deliver a better user experience with smoother, high-quality effects.

In addition to these traditional "horizontal" effects, we have implemented the new DirectX only "Zoom" animation. When users navigate to a control or a separate application module (or return), this animation creates an illusion of zooming in and out from the current screen, adding depth to your applications. This animation is not supported with GDI.

How to test: run our example app, which emulates a Windows Explorer application. Experiment with navigating through folders to show off the effect.

Tree List - Scrollbar Annotations and Find Panel Modes

Starting with version 19.1 the DevExpress Tree List will support those features that were introduced for the Data Grid one release ago.

Find Panel modes: along with the standard "Filter" mode, the Search Panel can now operate using the "Search" mode as well. In this mode, the Tree List will highlight matching records, but won't hide other entries. The Next/Previous buttons allow users to quickly navigate between all matches found.

Scrollbar Annotations: adds colored dashes to a vertical scrollbar; these dashes mark the positions of invalid values, focused nodes, as well as rows that match values entered in the Search Panel.

How to test: run the TreeList demo or refer to corresponding XtraGrid documentation:

Filter Editor - Custom Functions Support

You can now create custom filter functions that your end-users can select using the "Custom Functions" menu in Filter Editor. To add a custom function, enable the FilterControl.ShowCustomFunctions property, and handle the FilterControl.QueryCustomFunctions event.

How to test: run the XtraGrid → Advanced Filter Control demo, open a filter menu for the Discount column and check the IsBlackFridayDiscount filter in the “Numeric Filters” tab.

This particular filter is defined in the CustomFunctions.cs file, and shows all records with a 15% or larger discount:

   public object Evaluate(params object[] operands) {
            double discount = Convert.ToDouble(operands[0]);
            return discount >= 0.15;
        }

There are two other custom filters that have been defined in the demo: the “Not Begins With” filter for the “Product” column, and the “IsWeekend” filter for “Order Date”. These can be found in Filter Editor: right-click a column and select the “Filter Editor” menu item.

Office 2019-inspired Ribbon Features

We have added a couple of new Office-inspired Ribbon Control features, which are in effect when the control’s style is “Office2019”:

  • the buttons in the Ribbon tab header area;
  • the "Search" item that allows users to search for Ribbon commands by their names. Each Ribbon Item will now have a tag list (the SearchTags property) that helps users quickly find any required actions. You can customize the list of displayed commands by handling the CustomizeSearchMenu event.

How to test: run the Ribbon And Menu → Ribbon Simple Pad demo and type something in the Search box.

“VS 2019” Bezier Palette

We’ve added a new palette for the Bezier skin, one that mimics the Visual Studio 2019 appearance.

How to test: open the Project Settings Page, apply The Bezier skin and then the VS 2019 palette. Alternatively, you can just run the Docking demo.

Office-like Window Resizing

In version 19.1, we have increased the region that can be used to resize the form in two directions.

How to test: open any demo or XtraForm-based application and resize it using a corner.

Scheduler - Custom Appointment Sorting and Grouping

You can now sort and group appointments within the following views: Day View, Work Week View, Full Week View, Month View, Timeline View.

How to test: run the Timeline View demo and toggle the Sort By Status and Group By Label checkboxes.

To test this feature in your applications, handle the CustomAppointmentSort and CustomAppointmentGroup events. For example:

void DayView_CustomAppointmentSort(object sender, CustomAppointmentSortEventArgs e) {
    var apt1 = e.AppointmentLayoutInfo1.Appointment;
    var apt2 = e.AppointmentLayoutInfo2.Appointment;
    ...
    e.Result = ((int)apt1.StatusKey).CompareTo((int)apt2.StatusKey);
    ...
}


void DayView_CustomAppointmentGroup(object sender, CustomAppointmentGroupEventArgs e) {
    e.GroupKey = (int)e.AppointmentLayoutInfo.Appointment.LabelKey;
}

Scheduler - Appointment Slots for Office Hours, Meeting Availability, etc.

With version 19.1, you can create time regions that have a unique appearance, and that optionally restrict edit operations within them.

How to test: run the Full Week View demo. You will see that some areas are highlighted with a different color. These areas do not allow you to create appointments within those particular time intervals.

Here is the code that achieves that feature:

  public static void GenerateTimeRegions(SchedulerControl scheduler) {
            DateTime baseDate = DateTimeHelper.GetStartOfWeek(DateTime.Today);
            baseDate = baseDate.AddDays(-15);
            //Time Region 1
            TimeRegion timeRegion1 = new TimeRegion();
            timeRegion1.Start = baseDate.AddHours(13);
            timeRegion1.End = baseDate.AddHours(14);
            timeRegion1.IsReadonly = true;
            timeRegion1.Recurrence = new RecurrenceInfo();
            timeRegion1.Recurrence.Start = timeRegion1.Start;
            timeRegion1.Recurrence.Type = RecurrenceType.Weekly;
            timeRegion1.Recurrence.WeekDays = WeekDays.WorkDays;
            scheduler.TimeRegions.Add(timeRegion1);
            //Time Region 2 
            TimeRegion timeRegion2 = new TimeRegion();
            timeRegion2.Start = baseDate;
            timeRegion2.End = baseDate.AddDays(1);
            timeRegion2.IsReadonly = true;
            timeRegion2.Recurrence = new RecurrenceInfo();
            timeRegion2.Recurrence.Start = timeRegion2.Start;
            timeRegion2.Recurrence.Type = RecurrenceType.Weekly;
            timeRegion2.Recurrence.WeekDays = WeekDays.WeekendDays;
            scheduler.TimeRegions.Add(timeRegion2);
        }

Diagram Control - Collapsible Containers

Users can now collapse or expand container content. To enable this functionality, set the DiagramContainer.CanCollapse property to true.

Demo Link: Database Diagram

Diagram Control - Export to Pdf

We have added out-of-the-box PDF export to the Diagram Control. Diagrams are saved as vector images, which means that scaling issues are eliminated.

Demo Link: Flow Chart

24 comment(s)
cedrus bank

The "Exact" search in the grid is really really appreciated.

Thank you.

15 March, 2019
Customer69806

This is great news! :)

15 March, 2019
Martin Praxmarer - DevExpress MVP

nice features - what exactly does "the buttons in the Ribbon tab header area;" mean?

15 March, 2019
Christopher Jay

Nice stuff, keep up the great work.  I can finally get rid of all the custom code in my inherited grid control to use "exact match" searching!

15 March, 2019
Dmitry Babich (DevExpress)

@Martin

You can now put header buttons near tab headers by setting the BarItem.Alignment property to Left: preview

15 March, 2019
Martin Praxmarer - DevExpress MVP

thx Dmitry

15 March, 2019
Customer49558

What about gantt diagram?

15 March, 2019
Juan Betancourt

"  What about gantt diagram? "

+1

15 March, 2019
FlugerSoft

Gantt diagram? ++

15 March, 2019
Charalampos Michael

DirectX and Transition Manager - DirectX-based Animations for C# and not for VCL you must be kidding me!!!

15 March, 2019
Ömer Çarnaçar

+1

15 March, 2019
Laurence

The two scheduler improvements look great and will replace custom code i use, should help speed performance.

17 March, 2019
Dmitry Babich (DevExpress)

We plan to release a CTP version of the WinForms Gantt Control later this year in version 19.2 (see our Roadmap).

18 March, 2019
MatthewHughes_

Hey guys will those scheduler improvements be coming to asp.net? Out clients are screaming for that appointment slots feature.

18 March, 2019
Customer7404

Appreciated

19 March, 2019
Jhollman Chacon

HI, what is the minimun .NET framework version compatible with 19.1 ?

What i really mean is: ¿can i run 19.1 in old (non Win 10) PCs?

19 March, 2019
Greg Nuthall

My users can save grid layouts, can you add to the column header right click a format number and/or date function for the column formatting

19 March, 2019
Bhabani Shanakar Dash

Great news. Is there any further "Visual studio" Dark theme ? Also for xtraChart & gauges new models ?

19 March, 2019
Francois Massey

Wish Dx would add a Find functionality to the Scheduler!

19 March, 2019
Dmitry Babich (DevExpress)

@Jhollman Chacon

Version 19.1 requires .NET Framework 4.5.2 or newer. Please refer to this page:

Prerequisites

This means the following operating systems are supported:

Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10

20 March, 2019
Johnny K

love anything directX related!

but vs2019 is ugly and shouldn't copy its mistakes btw!

but so far those ideas are very nice!

20 March, 2019
mayer schmukler

+1 Christopher Jay>>> option like "ShowParserKindOptionOnFindPanel"

20 March, 2019
Lyudmila Evsyukova

Hello. Diagram export to visio format ?

21 March, 2019
Alex Chuev (DevExpress)

Lyudmila,

We have no plans for Visio export/import in 2019.

Thanks,

Alex

21 March, 2019

Please login or register to post comments.