Actipro Blog Q1 2020 Posting Summary

by Avatar Bill Henning (Actipro)
Wednesday, April 1, 2020 at 9:22pm

What We Accomplished

This quarter we issued updates to our WPF and Universal Windows control sets.  These updates contained a lot of minor enhancements and bug fixes.

On the development side, we've been hard at work on the WPF 2020.1 version.  The focus of this version is on modernizing themes across native WPF controls as well as the Actipro controls.  We've already posted a lot about WindowChrome updates and more recently ShadowChrome.  We'll continue posting more about many other v2020.1 enhancements in the weeks ahead.

What's Coming Next

Our top development priority right now is wrapping up the WPF v2020.1 feature set.  We've built a way to dynamically generate themes based on various options you set.  This is something we'll dive into in future blog posts.  Let me tell you, it's really neat and we can add more customization options in the future. 

We've already run through and have improved our themes for nearly all native WPF controls and have started doing the same to Actipro controls.  Ribbon has probably received the most visual updates so far.  The updates allow it to look just like Office 2019, complete with new animations, and Ribbon also now takes advantage of new WindowChrome features.  Keep watching our blog for more info.

Back on the WinForms side of things, we almost have another big maintenance release about ready to go for those controls.  We just have some final testing before it's ready to be released.

Blog Post List

Product Releases

Control Product Development

WPF Shadow Chrome

by Avatar Bill Henning (Actipro)
Tuesday, March 31, 2020 at 4:31pm

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

In the previous post, we saw how a WPF Window's system context menu can be themed/customized with new WindowChrome features.  Now that we've shown off a lot of new features coming to WindowChrome, let's start looking at other areas of v2020.1.

Shadow Chrome

In modernizing all our control themes (more on this in future posts), we wanted to come up with a new simple control for providing modern drop shadows.  What we came up with is ShadowChrome. 

A ShadowChrome with medium elevation surrounding a card

ShadowChrome is a simple decorator that can wrap any content.  It has settings for the direction, opacity, and elevation.  

A ShadowChrome with high elevation surrounding the same card

The screenshots show how altering the elevation can give the shadow a drastically different appearance.

ShadowChrome used to provide subtle shadow effects for the green check

ShadowChrome isn't limited to only rectangular shapes.  It can also be applied to non-rectangular shapes.

Summary

ShadowChrome is going to be used throughout our control themes in the 2020.1 version as a small part of modernizing our themes.  It will be shipped as a public primitive control in our Shared Library, so that it's fully accessible to our customers as well.

Post in the comments below if you have any feedback or questions about ShadowChrome.

WPF Controls v2019.1 Build 685 Maintenance Release

by Avatar Bill Henning (Actipro)
Tuesday, March 31, 2020 at 4:00pm

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

While the version includes a wide number of small updates and bug fixes, let’s take a look at a handful of the larger updates.  

Editors

AutoCompleteBox 

AutoCompleteBox now has a property that determines whether a clear button appears when the control is focused.

Swatch-Only Display

BrushEditBox and ColorEditBox now have a HasText property that allows you to hide the text portion of the edit box for a swatch-only display.

Dates and Times

DateEditBox and TimeEditBox now accept delimiter-less input for several additional custom formats.

Grids

Alternating Row Backgrounds

TreeListBox and TreeListView now support an optional AlternationCount of 2 for alternating row background colors.

Edit Box Validation

PropertyGrid interop with the edit boxes in our Editors product can now display a red border when a property value fails data validation.

SyntaxEditor

Search Overlay Pane

Logic related the selection scope searching has been improved.

Ctrl+Enter can be pressed to execute a Find All search operation when the Find textbox has focus and the find all button is visible.

UWP Controls 2020.1 Released

by Avatar Bill Henning (Actipro)
Tuesday, March 31, 2020 at 3:40pm

We are pleased to announce the release of the 2020.1 version of our UWP Controls.  

This announcement post contains the detailed list of updates in the 2020.1 version.  Please be aware that Windows 10 Fall Creators Update (version 1709) or later and usage of the Microsoft's free 'Win2D.uwp' NuGet package are required.

Download Buy Now

While the version includes a wide number of small updates and bug fixes, let’s take a look at a handful of the larger updates.  

Editors

AutoCompleteBox 

AutoCompleteBox now has a SelectedItemChanged event and an InputMode property, that alters input behavior.  Search mode is the default and is intended for usage when the control is providing search-like functionality, commonly seen in application title bars.  ComboBox mode is an alternate mode intended for use when the control should be used in more traditional ComboBox-like scenarios.  When in ComboBox mode, the popup list filter turns off when not typing in the control, allowing the entire list to be browsed when interacting with the control purely via the popup.

Swatch-Only Display

BrushEditBox and ColorEditBox now have a HasText property that allows you to hide the text portion of the edit box for a swatch-only display.

Dates and Times

DateEditBox and TimeEditBox now accept delimiter-less input for several additional custom formats.

Large Incremental Changes

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

Custom Format Strings

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

Grids

We've added a PropertyGrid.RequestRefresh method that can be called to tell the PropertyGrid to refresh its contents.

SyntaxEditor

Search Overlay Pane

A new background renders the search range when the search overlay pane is in Selection scope mode.

A new property allows you to disable key bindings that would activate the search overlay pane, which is useful if you have an external search UI.

Logic related the selection scope searching has been improved.

Ctrl+Enter can be pressed to execute a Find All search operation when the Find textbox has focus and the find all button is visible.

IntelliPrompt

New methods allow completion list items to be added much faster, dramatically improving performance.

WPF WindowChrome System Menu Customization

by Avatar Bill Henning (Actipro) - 2 comments
Monday, March 2, 2020 at 5:35pm

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

In the previous post, we saw how the window’s title bar header can be customized.  In today’s post, we’ll look at how the window’s system menu can be customized.

WPF Windows and Win32 System Menus

WPF Windows have always used Win32 to provide their system menus, which are menus displayed when clicking the window’s title bar icon, or when right-clicking on the window title bar.

The Win32 system menu is not rendered by WPF, and therefore never matches the style of a WPF application.  This is especially evident when using dark themes in your app.

An example of a default Win32 system menu in a dark-themed app

This light Win32 menu looks awful compared to dark-themed menus in the same application.

Customizing the System Menu

The latest WindowChrome updates automatically replace the Win32-based system title bar context menu with a custom WPF-based one with similar functionality. There are several benefit to this.

First, the menu will use whatever ContextMenu and MenuItem styles are active in your application. This ensures that the system title bar context menu renders in the same style as other menus in your application.  If you use Actipro Themes with native control theming enabled, the context menu can render in dark theme, etc.

The same system menu, rendered in WPF and with a custom menu item added

Second, since a custom WPF context menu is being created, the menu can be fully-customized via an event prior to being opened. This sample shows how a 'Help' menu item can be injected into the system title bar context menu.

Summary

Using WPF menus for the system menu ensures theme consistency and easily allows for complete customization of the menu’s contents.

Post in the comments below if you have any feedback or questions about WindowChrome system menu customization.