Quantcast
Viewing all articles
Browse latest Browse all 2392

WinForms – Early Access Preview (v19.1)

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.

Image may be NSFW.
Clik here to view.

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.

Image may be NSFW.
Clik here to view.

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:

Image may be NSFW.
Clik here to view.

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;
        }

Image may be NSFW.
Clik here to view.

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.

Image may be NSFW.
Clik here to view.

“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.

Image may be NSFW.
Clik here to view.

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.

Image may be NSFW.
Clik here to view.

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.

Image may be NSFW.
Clik here to 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.

Image may be NSFW.
Clik here to view.

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);
        }
Image may be NSFW.
Clik here to view.

Viewing all articles
Browse latest Browse all 2392

Trending Articles