WPF Controls v2019.1 Build 684 Maintenance Release

by Avatar Bill Henning (Actipro)
Tuesday, January 14, 2020 at 9:03pm

Our v2019.1 WPF controls have been updated with a new maintenance release that is now ready for download. 

See this announcement post for the detailed list of enhancements and updates.

Download Buy Now

Let's have a look at some of the larger updates.

Docking/MDI

Tab Overflow Menus

A tabbed MDI overflow menu

The tab overflow menu now places a checkmark by the currently-selected tab.

Editors

AutoCompleteBox Input Modes

A new AutoCompleteBox input mode property has been added that determines how the control behaves.  Search mode is intended for usage when the control is providing search-like functionality, commonly seen in application title bars. 

An AutoCompleteBox

ComboBox mode is an alternate mode intended for use when the control should be used in more traditional ComboBox-like scenarios, where an items source is bound and the user should be able to easily choose an item from the list of items. A big difference between the modes is that when in ComboBox mode, the popup list filter turns off when not typing in the control. This allows the entire list to be browsed when interacting with the control purely via the popup.

Edit Box Large Incremental Changes

Numeric edit boxes now support large incremental changes when holding Shift while pressing Up/Down, using the spinner, or rotating the mouse wheel.

Edit Box Conditional Format Strings

Several numeric edit boxes now support custom format strings with semi-colon conditional format specifiers.

Grids

PropertyGrid API Improvements

A PropertyGrid.RequestRefresh method has been added, which requests that the property grid refresh its contents.

A PropertyDescriptorPropertyModel.PropertyDescriptor property has been added, which returns the PropertyDescriptor used in that particular property model.

SyntaxEditor

Selection Scope Search Ranges

The built-in search overlay pane, currently using Selection scope, and with the search range showing in the editor view

When using the search overlay pane, a new text background renders over the search range if in Selection scope mode.  Logic related to Selection scope search range has been refactored and improved.

Search Overlay Pane Hotkeys

A new property can determine if built-in hotkeys are supported that can activate for the search overlay pane.  Turn this feature off when external search UI is used.

Completion Item Performance

Completion list item-adding performance has been dramatically improved when using new batch features.  All add-ons take advantage of the new features.

Themes

WindowChrome Updates

WindowChrome’s startup logic has been streamlined to reduce Win32 calls, and help prevent against rendering issues.

WPF Controls 2020.1 Themes Goals

by Avatar Bill Henning (Actipro) - 7 comments
Tuesday, December 10, 2019 at 6:54pm

Actipro WPF Controls v2020.1 development is in progress, and the new version’s main goals are to modernize our themes and make theme customization much easier.

In today’s post, I’d like to provide some high-level information on some of the updates.

Theme Generation Concept

When an Actipro theme is activated, hundreds of brush and other resources are loaded and used throughout all our Actipro and native control templates.  This allows our themes to provide a cohesive appearance throughout all controls in your app.  Our WPF Controls ship with over 25 professionally-desired themes that match system, Office, and Metro themes.

In v2019.1 and earlier, all these theme resources are pre-defined by us in large XAML files and customers can customize individual resources or tint groups of them.  While these themes look great, it can be tedious to customize them if you don’t like the out-of-the-box look.

A primary focus of the 2020.1 WPF Controls is to move from our previous pre-defined themes towards themes that are generated at run-time based on theme generator options you set.  For instance, a main setting is the theme intent, which can be White, Light, Dark, Black, or HighContrast.  This tells the theme generator how the theme is meant to be used in general.  Then various grayscale and color ramps are generated based on configurable options.  All the highlight colors are based on colors generated in the color ramps.  There are options for things like the corner radius of tabs, whether the title bar uses an accent color (like in Office colorful themes), etc.

We are currently prototyping out this concept and so far, it’s working very well.  We will provide some screenshots once we are further along.  Please post your ideas on what kinds of options you’d like to have configurable in the comments below, as that will help guide us.  Now is the time to think big!

Modernizing Control Appearances

We have numerous ideas for bringing more modern control appearances to our new WPF themes.  Some of these, such as menu item checkmark updates, involve changes to our core control templates, both for Actipro and native controls.  Other modernization features will be optionally activated via properties set when generating themes.

WindowChrome, which allows any WPF Window to have advanced chrome features, is also getting a lot of enhancements that will be described in a future post.  These updates provide new functionality that wasn’t available before.

With several older themes being removed and other modernization template changes being made, we are finding that some of the brush and other resources used in our WPF themes are no longer needed.  We are working on consolidating brush resources where possible and removing unnecessary resources.

Older Themes

Luna and Classic

As part of the themes updates, we are going to be removing several very old themes that are outdated at this point.  These include the Luna themes (Windows XP appearance) and Classic theme (based on system colors and hasn’t been available in Windows 10 for years).

Aero and Office 2010

In a previous post, we had asked for feedback on whether customers still use Aero and/or Office 2010 themes.  Aero theme provided the Windows 7/Vista appearance, but Windows 7 is going end-of-life this month by Microsoft.  Office 2010 went mainstream end-of-life in 2015. 

We received feedback from several customers who still wished to use those themes in the foreseeable future, and we will be retaining those themes as options.  They are being consolidated into a separate optional Themes.Aero assembly that you will be able to reference and register at app startup.  This will allow us to keep our Shared Library smaller while still allowing the pre-defined Aero-style themes to be available for customers who wish to use them.

Aero Glass

With Windows 7 going end-of-life, we are removing support for transparent Aero glass features in our WindowChrome.  But as mentioned above, the Aero theme will still be fully available.

Feedback

We’d love to hear your comments, especially what kinds of options you’d like to see on our theme generator. 

Twitter Poll on Modernizing WPF Themes

by Avatar Bill Henning (Actipro) - 13 comments
Monday, November 11, 2019 at 3:57pm

Work on the WPF Controls 2020.1 version has begun.  This version is going to have large updates to our themes system.  Our goal is to focus on modern designs, allowing you to easily customize and personalize the themes used for your WPF applications.  We have a lot of ideas that we're excited to work on and will be sharing over the coming months on the blog.

As we dive into this effort, we are removing old system themes that aren't really needed any more.  For instance, "Classic" themes haven't been available as an option in Windows 10 for some time.  "Luna" (Windows XP) themes are for an operating system that went end-of-life many years ago.

Similarly, Windows 7 is going end-of-life around the end of 2019 and Offce 2010 went mainstream end-of-life in 2015. 

We are strongly considering dropping the Aero and Office 2010 themes so that we can slim down our product assemblies and focus on more current-era "modern" theming.  Rest assured, what we have planned for modern themes will allow for a high degree of customization and ease-of-use.

We've created a Twitter poll so that you can share your thoughts on dropping Aero and Aero-like Office 2010 themes in our 2020.1 WPF Controls.  We ask that you provide your opinion in this poll.  If you would like to see them kept, please contact our support team with the reasons why.

Answer the Twitter Poll

Again, all the operating systems and Office versions that had these themes are imminently or are already end-of-life.  Thank you for your feedback!

WPF and UWP v2019.1 Maintenance Releases

by Avatar Bill Henning (Actipro)
Wednesday, October 2, 2019 at 8:42pm

Our v2019.1 WPF and Universal Windows controls have been updated with new maintenance releases that are now ready for download.  There were a number of minor enhancements and bug fixes made across various products.

See the announcement posts for the detailed list of enhancements and updates:

Download Buy Now

Let's have a look at some of the larger updates.

SyntaxEditor

.NET Languages Add-on Parser Updates

The C# parser and resolver have been updated to support C# 7.3 syntax.  Likewise, the VB parser and resolver have been updated to support VB 15.8 syntax.  These enhancements allow SyntaxEditor's syntax checker and IntelliPrompt engine to work with recently-added C# and VB language features.

Triple-Click Selection

Triple-clicks now selects an entire view line.  Dragging the pointer on the final click will extend the selection by view line.

Searching Improvements

Editor view searching and search result highlighting logic was improved, including offloading some pieces to worker tasks for better performance.

The search overlay pane's textbox now displays a red border when no match for the find text is located.

Shell (WPF)

Object Name Sorting

The name sort logic for shell objects now uses a natural sorting algorithm, where digits in the names are considered as numerical content rather than text.  This behavior matches Windows' own sorting logic.

Grids

PropertyGrid DataObject Clearing

We added a new section to the PropertyGrid documentation that talks about best practices for clearing the DataObject property when the PropertyGrid is no longer needed to prevent memory leaks.  We improved some of our own internal logic in how we watch for property value changes to help prevent memory leaks regardless.  A PropertyGrid.CanClearDataObjectOnUnload property was also added that can be set to true to automatically clear the DataObject property when the control is unloaded.

All

VS 2019 Designer Functionality (UWP)

The original 2019.1 version of the UWP Controls changed the minimum Windows 10 target version to the Fall Creators Update.  This change indirectly triggered a different set of designer functionality APIs in VS 2019 that are breaking changes from the old ones.  This new UWP Controls maintenance release updates our designer functionality to be based on the newer APIs.

WPF Controls v2019.1 Build 682 Maintenance Release

by Avatar Bill Henning (Actipro)
Wednesday, August 21, 2019 at 6:45pm

A new v2019.1 WPF controls maintenance release is now ready for download.  This build makes numerous improvements and bug fixes across many products, with some more notable ones discussed below.

See the announcement post for the detailed list of improvements and updates.

Download Buy Now

Edit Box Decimal Place Rounding

All numeric edit boxes in Editors now allow you to specify the exact decimal place at which to round numeric values.

A DoubleEditBox that rounds to three digits

SyntaxEditor Touch Interaction

Touch-based input for operations such as scrolling, zooming, and selection have been greatly refined so that they are more natural.

IntelliPrompt Quick Info and Parameter Info

The previous build started supporting the use of syntax highlighting for foreground colors.  A problem was that it was using some app resources for background colors, meaning some scenarios could occur where the foreground text would blend with the background. 

The parameter info tip background now matches the view's background color

The fix for this problem made in this new build is to use the editor view's background color as the background of the quick info and parameter info tips.  That ensures the foreground colors always render in a readable way in regards to the background.