WPF Samples Application Modernization

by Avatar Bill Henning (Actipro) - 5 comments
Friday, May 22, 2020 at 1:15pm

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 took a look at the many updates made to modernize the appearance of our Ribbon product for v2020.1.  Over the past several weeks, we've been hard at work completely redesigning the user interface of our WPF Controls samples application.  This has been quite an effort since the application contains hundreds of samples in it.  Let's dig in!

Reimagining the Samples Application Design

The new WPF Controls samples application design makes use of all our latest themes-related improvements in the 2020.1 version.  Right from the start, you'll see our new WindowChrome title bar customization features in play.  We've created a completely unique appearance for the title bar in this application, with the current location clearly listed on the left, and various other buttons (switching the app theme, quickly getting to the release history or other views, and so on) on the right side.

The sample application's home view

The home view features direct links to our most popular control demos at the very top.  Or scroll down to click buttons that delve into each product, with many samples available for each.

The buttons here make use of our new ShadowChrome control that is added in v2020.1.  ShadowChrome renders modern drop shadows and can be easily animated.  In this case, we draw the button "upward" to the mouse by altering the shadow as you mouse over a button.

Another thing to notice here is that we've built vivid new icons for each of our WPF Control products, all in the fluent design style.

Let's click the "Editors" product button...

The Editors product overview

Each product overview provides one or more screenshot buttons that link directly to enticing samples of the product, and shows a brief description of the product.  Scroll down to see the entire categorized list of links to available product samples.

We'll click on the "Brush" edit box link...

The Brush edit box QuickStart

This screenshot is representative of what you'll find with many of our QuickStart samples.  The control itself is displayed on the upper left.  Various sample options to alter its appearance and behavior appear in the right sidebar, and a general description of the control is below that.  We often show a gallery of example usage scenarios of controls as well.

How does all this look if we change the application theme?  Let's switch to a Metro dark theme:

The Brush edit box QuickStart in dark theme

Flipping back to the original theme, how can we quickly jump to another Editors sample or to another product's samples?

The Backstage for the Editors area

By clicking the button on the upper left that shows the current view location, a Backstage view is displayed.  It lists all the samples for the current product in a categorized list.  Or you can scroll down to see the list of products to easily jump to another product's samples.  This Backstage feature is supported by our new WindowChrome overlay feature.

Summary

We've put a lot of effort into making a new clean, modern design for the samples application and we hope that you'll love using it once the 2020.1 version is released.  It makes the entire presentation of the hundreds of samples in the application much more consistent and best of all, the XAML code-behind is now much easier to read.

Post in the comments below if you have any feedback or questions about the new samples application design.

WPF Ribbon Theme Modernization

by Avatar Bill Henning (Actipro) - 1 comment
Thursday, April 23, 2020 at 3:27pm

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 showed off a new ShadowChrome control that is a decorator for rendering modern shadow effects. In today’s post, let’s have a look at some of the major work we’ve done on modernizing the appearance of our Ribbon product for v2020.1.

Comparing Appearances

For the 2020.1 version, we’ve gone through every Ribbon-related control and made style improvements to match the latest appearance found in Office 2019. Let’s see how the 2020.1 version’s theme compares to our current 2019.1 version’s theme:

The new Ribbon 2020.1 appearance
The current Ribbon 2019.1 appearance

You can see from the screenshots that there are subtle differences throughout. Whitespace has been adjusted, glyphs are now chevrons, the title bar background accent is more restrained, etc.

The right side of the Ribbon

Looking at the right side of the Ribbon, collapsed groups now render a bit differently from before. Contextual tab groups are more subtle. Tab row buttons like the Comments one in this screenshot have a new available style. And there is a built-in minimization button on the bottom-right.

Animated Tabs

We also wanted to provide fluid animations throughout the Ribbon, similar to Office. When you move your mouse over a tab, the underline animates to fill the tab.

Tab animations in action

When you select a new tab, the tab’s content animates into place with a quick slide.

Animated Backstage

Continuing on the animation front, we harnessed the great new WindowChrome overlay features that are coming in 2020.1 to host our Ribbon’s Backstage.

Backstage animation in action

This allows the Backstage to be fully animated on display as well.

Summary

We are still continuing to iterate on our themes for Ribbon and other products, but this should give you an idea of some of the fantastic themes updates coming in the new version.

Post in the comments below if you have any feedback or questions about the new Ribbon themes.

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

WPF WindowChrome Title Bar Header Customization

by Avatar Bill Henning (Actipro)
Thursday, February 27, 2020 at 2:37pm

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 content area can optionally be merged into the title bar area.  In today’s post, we’ll look at how the header portion of the title bar (where the text title normally is) can be customized and replaced if desired.

Title Bar Header Customization

While the Windows standard is to display a text title in the title bar, sometimes modern apps like to swap that out for other controls, or to completely remove it altogether. 

In this example, we’ll show how a PopupButton from our Shared Library can be added to the title bar, using one of our title bar button styles to render it with title bar brushes. 

A PopupButton in the title bar header showing a menu

Here we see the text title is replaced by the PopupButton.  When the button is clicked, it shows a menu with some options for managing the document open in the window.  This kind of user interface configuration could be used for small apps that don’t have a menu.

We’ve set up the button to have a maximum width of 300.  Here’s a look at how the button resizes itself as available width descreases.

The same window with less available width showing how the PopupButton can trim its text

Summary

These and all the other recently-described WindowChrome features will be available in the 2020.1 version.  We’ve got one more post describing new WindowChrome features before we move onto another area of what’s coming in 2020.1.

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