Subscribe (RSS)

Quick Links

About Actipro

Actipro Software has been creating .NET user interface control products for Windows Forms since its inception. More recently, Actipro has become a pioneer in the .NET 3.0 WPF control development arena.

WPF Studio 2009.1 customers can now download default control styles

by Bill Henning (Actipro) June 18, 2009 at 05:57

We’ve just enhanced our Organization Purchases page so that customers of our WPF Studio 2009.1 suite can download a ZIP containing the default styles and templates for the controls.

DownloadStyles

Note the new link highlighted above that you’ll see in your account if you own WPF Studio 2009.1.  Click that link to download a ZIP that has all the XAML source files used in the various WPF Studio products.  These XAML source files define the brushes, templates and other resources that are used by the products.

Enjoy!

WPF Studio gets the Royale treatment

by Bill Henning (Actipro) July 22, 2008 at 20:31

Part of the large Actipro WPF Studio build 456 update was a number of new themes for our controls that match the "Royale" Windows system theme.

The Royale theme is a Media Center-like theme that was made available for Windows XP and generally looks more modern than the three standard Windows XP themes.

Now all our themed WPF products look great in the Royale system theme.  Let's take a peek at some of the major controls:

Actipro Ribbon for WPF

RibbonRoyale

Actipro Ribbon with its Royale theme

Actipro Docking & MDI for WPF

DockingRoyale

Actipro Docking & MDI with its Royale theme 

ExplorerBar and Breadcrumb (Part of Actipro Navigation for WPF)

FileSystem

ExplorerBar and Breadcrumb with their Royale themes 

NavigationBar (Part of Actipro Navigation for WPF)

OutlookUIRoyale

NavigationBar with its Royale theme 

Actipro Wizard for WPF

WizardRoyale

Wizard with its Royale theme 

Ribbon for WPF system themes added in build 4.0.0456

by Bill Henning (Actipro) July 21, 2008 at 22:19

We've been hard at work this past week on adding a bunch of new themes for our WPF Studio v4.0 controls.  One area we addressed was adding six new themes for Ribbon for WPF.

SystemThemes

The new Royale, Luna (olive green), and Classic themes for Ribbon 

The six new themes are:

  • Luna (blue)
  • Luna (olive green)
  • Luna (silver)
  • Royale
  • Classic
  • High-contrast

All the new themes (except high-contrast) still use subtle gradient effects to give the controls depth and look great when used in the appropriate operating system.

Default Theme Changes

Previously we only had the three Office 2007 themes (blue, silver, black) for Ribbon.  Windows Vista defaulted to using Office Black while other Windows systems defaulted to using Office Blue.  In this new maintenance release, this behavior has changed.

Now when running XP, the appropriate system-based theme will be automatically chosen instead of Office Blue.  Windows Vista will still use the Office Black since that matches Aero color schemes.

To continue using the Office Blue theme in XP, set our ThemeManager.CurrentTheme = "Office2007Blue"; 

High-Contrast Theme

The High-contrast theme is designed to only be used in high-contrast color schemes.  When you detect a high-contrast theme is active, set our ThemeManager.CurrentTheme = "HighContrast"; and that will activate the theme.

WPF Studio v4.0 Released Adding Docking/MDI and Gauge Products

by Bill Henning (Actipro) July 10, 2008 at 21:10

We're very happy to have just released WPF Studio v4.0.  This version is the culmination of several months of work and we're sure you'll love what you see.

Download Actipro WPF Studio v4.0 now

To celebrate, we'll be posting details about a special promotion for existing UIStudio for WinForms customers who are looking to get into the WPF arena.

Docking & MDI for WPF

Actipro Docking & MDI is a complete solution for easily adding a docking tool window and/or multiple document interface to your WPF applications. Allow your end users to drag and dock tool windows wherever they please, and to persist their customizations. Also use this product to fill the gap left by Microsoft not including an MDI mechanism in the WPF platform.

Docking

Docking & MDI showing a docking operation in progress with the Aero theme active 

Docking & MDI has been implemented with flexibility in mind. It has more options than nearly any other competitive product out there and mimics Visual Studio 2008's capabilities. While it supports all the types of standard layouts you find in most docking window products, it also supports some extended functionality that you won't find anywhere else.

Check out more information about the product or try a live demo on our site.

Gauge for WPF

Actipro Gauge is a control suite that implements circular, linear, and digital gauge controls for the Windows Presentation Foundation framework. Each gauge control has tons of options available, providing for limitless possibilities.

Gauge

Circular, linear, and digital gauges combined to display monitoring information 

Gauge controls are ideal for displaying several data points in a concise and compact area. Everything from car dashboards to medical and industrial equipment use gauges, and are quickly recognized and understood by users.

The circular and linear gauges are perfect for presenting a value, or values, bound by a specific range. The digital gauge is perfect for mimicking real-life LED displays.

Check out more information about the product or try a live demo on our site.

Other Enhancements

There were a lot of other minor enhancements and tweaks made throughout our WPF control products for this release.  We added several new demos and useful utilities as well.

Theme Browser

One great new utility found in WPF Studio is the Theme Browser.  A WPF Studio customer was kind enough to post a simple theme browser for our controls in the WPF Studio forums for the benefit of other customers.

We took this idea and ran with it, making a very helpful utility that lets you browse each Brush resource used by our products for the various themes.  The utility shows a preview of each Brush and even allows you to copy a DynamicResource reference accessing the Brush to the clipboard so that you can reuse it in your applications as long as the same theme is loaded.

ThemeBrowser

The new Theme Browser, that comes with WPF Studio

This is really useful for those of you making some customizations to other controls and wanting to use the same Brushes as us so that you have a consistent look in your application.

String Resource Browser

Going along with the Theme Browser idea, we wanted to make a String Resource Browser.  All our products that display text in the user interface stores the default text in string resources.  You can customize or localize the text in code-behind via a single line of code for each item. 

StringResourceBrowser

The new String Resource Browser, that comes with WPF Studio

The String Resource Browser lets you examine all the string resources used in our various products.  When you select a string resource, you have the ability to enter a customized version of it.  The Browser even generates the C# and VB code you can paste into your application to perform the customization.

ExplorerBar for WPF - Windows XP-like task pane

by Bill Henning (Actipro) March 4, 2008 at 20:31

Explorer bar is an implementation of the task bar that was introduced in Windows XP's explorer. It hosts a vertical stack of expandable panes that generally provide task-based information to the end user.

ExplorerBarThemeLunaNormalColor

The ExplorerBar control in its Luna normal-color theme

Any content can be placed within each expander pane and the alternate style of pane headers is supported via a simple style setting.

Animated Expander Panes

Each expander pane uses smooth animation to fade in and slide down its contents when expanded. Likewise, when an expander pane is collapsed, its contents fade out and slide back up.

ExplorerBarAnimation

The ExplorerBar control with its second pane being expanded with animated fade in and slide down

Themes

This product includes 4 distinct built-in themes and is fully extensible so that other product themes can be custom developed. Themes can be tinted towards any color or set of colors, and brush resources from them may be reused.

ExplorerBarThemeClassic

The ExplorerBar control in its Windows Classic theme

Single Expansion Option

An option is available to only permit a single expander pane to be expanded at any time. By default, any number of expander panes may be expanded.

Globalization

This control fully supports left-to-right layouts and user interface resource string customization.

ExplorerBarFlowDirection  
ExplorerBar using a right-to-left flow direction

Designer Support

ExplorerBar has designer support similar to our other controls.  For instance when working in Visual Studio 2008, you have access to task panes for the controls:

VSExplorerBarTaskPane

An ExplorerBar selected in the Visual Studio 2008 designer

ExplorerBar installs toolbox items for VS 2008.  It even includes an item template that is available from the New Item pane in VS 2008 that when selected, creates a new Window with a simple ExplorerBar on it.

Getting ExplorerBar Free

Any Actipro WPF Studio customer with an active subscription is eligible to get ExplorerBar for free!

NavigationBar for WPF - Complete Outlook 2007 Functionality

by Bill Henning (Actipro) March 2, 2008 at 21:30

Actipro WPF Studio v3.5 adds a new control called NavigationBar.  NavigationBar provides a facility for navigating through different panes of data. This concept was introduced in Outlook, and NavigationBar implements all of the features found in Office 2007. It has an elegant user interface which uses buttons to control which navigation pane is selected. Panes can display data or simply act as a container for child controls.

NavigationBarThemeOffice2007Blue
The NavigationBar control in its Office 2007 blue theme

If screen real estate is available, large buttons can be used for pane selection. The end-user has the option of using a splitter to move the large buttons into the overflow button tray, which uses smaller buttons. If not all of the buttons can fit in that tray, they flow out into the overflow menu, accessible by the chevron button.

NavigationBar Minimization

The NavigationBar supports a minimized mode in which it is collapsed to be very narrow. A button appears in the original content area of the NavigationBar and when clicked, a popup displays containing the content of the currently-selected pane. Minimization can be set to occur on the left or right sides.

NavigationBarMinimizedPopup

A minimized NavigationBar control with its content popup displayed

Customize Button

The customize button can optionally be displayed in the overflow button area of the NavigationBar. When clicked, it displays a menu that is populated with default menu items but can be customized and fully styled

Options Window

A built-in Options window comes packaged with NavigationBar.

NavigationBarOptionsWindow

A minimized NavigationBar control with its content popup displayed

The window offers the end-user the ability to reorder navigation pane buttons by using the Move Up and Move Down buttons. Navigation pane buttons can also be hidden by unchecking the button items in the list. The visibility and sort order can be reset back to defaults by clicking the Reset button.

Themes

This product includes 8 distinct built-in themes and is fully extensible so that other product themes can be custom developed. Themes can be tinted towards any color or set of colors, and brush resources from them may be reused.

NavigationBarThemeLunaHomestead NavigationBarThemeCustomRed

The built-in Luna Homestead theme and a custom-tinted theme

Containers

The NavigationBar has an option to hide its pane buttons. By using this option, you can mimic a simple container that has the NavigationBar appearance.

NavigationBarContainer
A NavigationBar control in the Luna normal-color theme containing a single pane, and with pane buttons hidden

NavigationBar also includes styles that can be used for Expander controls to mimic a sub-header panel. The expander uses fade and slide animation during expand and collapse operations.

NavigationBarStandaloneExpander

A native WPF Expander with the Luna normal-color theme's expander style applied

Layout Serialization

End user layout customizations can be persisted in XML format and restored later.

Globalization

This control fully supports left-to-right layouts and user interface resource string customization.

Designer Support

NavigationBar has designer support similar to our other controls.  For instance when working in Visual Studio 2008, you have access to task panes for the controls:

VSNavigationPaneTaskPane

A NavigationPane selected in the Visual Studio 2008 designer

NavigationBar installs toolbox items for VS 2008.  It even includes an item template that is available from the New Item pane in VS 2008 that when selected, creates a new Window with a simple NavigationBar on it.

Getting NavigationBar Free

Any Actipro WPF Studio customer with an active subscription is eligible to get NavigationBar for free!

It's all about frameworks... updates coming to the WPF Shared Library

by Bill Henning (Actipro) February 21, 2008 at 01:43

We're currently ramping up for the Actipro WPF Studio v3.5 release, and I wanted to discuss some of the new framework features that we've built into the Shared Library for this release.

As a side note, we have an exciting new WPF product that will be part of v3.5 and all WPF Studio customers will get it for free upon release.  But more on that in a later blog post.

Themes Management Framework

As we started adding more controls to WPF Studio that have numerous themes, we recognized the fact that we really need to have a common themes framework that supports both the native WPF system theme switching capabilities, along with an optional easy way to change the entire theme of an application with a single line of code.

Take Office for example... they offer three built-in themes: blue, silver, and black.  Our goal with the design of our theme framework was to be able to say in one line of code, change all Actipro controls (and any other controls that use this framework) to look right under a user-specified theme.

That's right, the framework is fully extensible so that when you use WPF Studio with your WPF applications, and you've defined your own custom controls, you'll be able to wire up multiple themes of your own custom control to our theme manager and have the theme automatically change when you set the application's theme.

Changing Themes

Changing a theme is as simple as a line of code like this:

ThemeManager.CurrentTheme = "Office2007Blue";

That line of code will automatically change any control's theme that is registered with ThemeManager to use resources for the specified theme name.

ThemeManager also defines an attached Theme property that can be set on any control.  So say you only want to change themes on a particular UserControl and make any of its contents use a Windows XP Blue theme, simply set the ThemeManager.ThemeProperty value on the UserControl to "LunaNormalColor" and voila, the child controls update.

How Does it Work?

Everything in the themes framework is built upon the base resource dictionary design in WPF.  Essentially ThemeManager maintains a catalog of what resource dictionaries provide what themes for what controls.  When you change a theme, it unloads any previously-loaded dictionaries and loads any appropriate new ones.

As mentioned, Actipro controls that support multiple themes will have this functionality built-in, but you can also register themes for your own controls and have them change themes right along side of Actipro's controls for a consistent user interface.

Tinting All or Part of a Theme

Our theme framework also supports the tinting of any theme or portion of a theme towards a certain color.  This means that you can take a built-in theme like the Office 2007 silver theme, and make it a red one instead.  Various groups of brushes and pens can be defined as belonging to tint groups, allowing you to change certain portions of a theme's resources to different colors. 

Object Serialization Framework

A new object serialization framework will appear in v3.5.

XAML Serializer

A class named XamlSerializer provides numerous methods for saving any object to XAML with one line of code and reloading the object later, again with a single line of code.  You can persist to a string, Stream, file, or XmlWriter.

XML Object Hierarchy Serializer

We also started encountering a pattern where hierarchies of objects need to be persisted to XML.  This is most commonly used when persisting end user layout changes for controls (like docking window layouts, etc.).

Therefore we came up with a framework for easily building serializable object hierarchies that harnesses the .NET XmlSerializer at its core but provides a wrapper around that functionality with many useful features.

For instance, the framework also can serialize to a string, Stream, file, or XmlWriter with one line of code.

An added benefit of the framework is that you can provide a delegate that is called whenever an object in the object hierarchy is serialized.  This allows you to insert custom data into the serialized data at any location.  Likewise, you can read this data back in by providing another delegate at load time.

We envision this framework being used in many future WPF products.

String Resources Framework

Finally, we came up with a good way of storing and accessing string resources for our products.  Any string that is displayed in the user interface for our controls will now be located in normal .NET string resources.

We provide an SR (string resource) class in each product that has string resources, which can retrieve a named string resource programmatically.  And we include an SRName enumeration containing the names of all string resources in the product.

On top of that, the SR class has a number of methods for completely customizing the string resources by changing specific string resource values to custom strings.  This will be most commonly used for localization.

The SR class returns the resolved string resource value between the customizations and the defaults.

To make things even better we also have make a markup extension that can be used in XAML.  Simply call the markup extension and pass it the name of the string resource to retrieve.  Its return value will be the resolved value of the string resource.  We now use this throughout our control templates.

Summary

These are just some of the new features you'll find in WPF Studio v3.5 when it is released soon.