Subscribe (RSS)

Quick Links

Recent Posts

Tags

Categories

Archive

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.
Friday, 3 October 2008 07:53 by Bill Henning

New PropertyGrid features and other WPF Studio build 471 updates

The latest maintenance release of Actipro WPF Studio v4.5.0471 includes several large updates to the PropertyGrid product, several small updates to other WPF Studio products, and a number of brand new QuickStarts for the Sample Browser.

PropertyGrid Features

Filters

The first new PropertyGrid feature is the ability to quickly and easily filter the items presented. We've included several built-in filters for string and boolean properties, as well as filter groups. String filters support everything from Equals to regular expressions and groups can be used to combine any number of filters using AND/OR logic.

PropertyGridBeforeFilter PropertyGridAfterFilter

Shows the PropertyGrid before (left) and after (right) text is typed to filter out properties by name

We designed the filters so that they can readily be used directly from XAML, including support for data binding. Custom filters can be used when the built-in filters are not enough. 

Filters allow users to quickly find a specific item, or they can be used to permanently exclude items from being displayed. 

A common use of filters is to provide a TextBox above the property grid.  When the end user types in text, only the properties whose names contain the text are displayed.  This is displayed in the screenshot above.

Read-Only State

We have also added a read-only state to the PropertyGrid, which is configured using the new IsReadOnly property. Using this new property, all the value editors in the PropertyGrid can be set to prevent changes.

PropertyGridReadOnly

PropertyGrid with the global IsReadOnly flag set to true; note all values are disabled in this mode

Memory Usage and Other Fixes

Several memory issues and other fixes found since the initial product release are also included in this release.

New Demos and QuickStarts

We've added five completely new demos and QuickStarts to this release, along with updating two of our existing QuickStarts with new functionality.

Docking & MDI Custom Docking Windows

We've had several requests to allow our DocumentWindow and ToolWindow controls to be inherited so that they can be defined as their own classes with separate XAML.  There was a core WPF issue that prevented this in the past (styles wouldn't be applied to the inherited controls) however we've found a workaround for this issue and implemented it in build 471.

In addition, we've added a new QuickStart that shows exactly how to define custom DocumentWindow and ToolWindow classes and reuse them in a DockSite.

MonthCalendar Day Highlighting

Another request we've gotten from several customers is to be able to highlight certain days within our MonthCalendar control.  In build 471, we show the implementation of a custom class that highlights certain days. 

MonthCalendar

The MonthCalendar control showing several types of highlighted days

The same concept could be used to highlight holidays, birthdays, etc. in your own applications.

Enjoy the update!

Tags:   , , ,
Categories:   Actipro | New features | WPF | XAML
Actions:   E-mail | Permalink | Comments (0) | Comment RSS



Tuesday, 8 July 2008 07:55 by Bill Henning

Sneak Peek: Gauge for WPF - Flight Simulation Gauges

We're just about ready to launch WPF Studio v4.0, probably in the next day or two.  Keep an eye on our site for the official release!

As another sample of what our gauges in WPF Studio v4.0 can do, here is a flight simulation gauges gallery that shows a collage of gauge controls related to a flight simulation.

 FlightSimulation

Flight simulation gauges that can be fully data bound

The full XAML source for these control samples are in our v4.0 Sample Browser.

Tags:   ,
Categories:   Actipro | In development | WPF | XAML
Actions:   E-mail | Permalink | Comments (0) | Comment RSS



Friday, 30 May 2008 08:42 by Bill Henning

First Look: Gauge for WPF

We've been hard at work over here on several new products for WPF Studio.  The first that I've been posting about is the WPF Docking and MDI product.  The Docking product is one of the new products that will be part of WPF Studio v4.0.

But we also have one other unannounced product coming to WPF Studio v4.0, and that is Actipro Gauge for WPF.  We're very excited to have teamed up with NextWave to help enhance their forthcoming gauge product and include a split of the code as an Actipro branded product, and part of WPF Studio.

Gauge for WPF Features

Linear

A linear gauge... use to represent any sort of linear values, such as in meters

Gauge for WPF supports the creation of nearly any kind of gauge that you can imagine.  Basic gauge types include circular, linear, and digital gauges.  It includes a wealth of configurable properties, allowing you to completely customize the look and capabilities of your gauges.

Circular

A circular gauge... use to create any sort of instrumentation, meter, or knob

What can you do build with Gauge for WPF? 

  • Electronic measurement gauges
  • Medical measurement gauges
  • Industrial measurement gauges
  • Knobs
  • Digital panels
  • Clocks and watches
  • Thermometers
  • Compasses
  • Vehicle dashboards
  • Flight simulation dashboards
  • Any other sort of circular, linear, or digital gauge

Digital

A digital gauge... use to create clocks or any type of digital readout

What are some common use examples for these sorts of gauges?

  • Business intelligence dashboards
  • Executive summary dashboards
  • Industrial or medical controls and readouts
  • Software interaction with electronic equipment
  • Simple digital readouts
  • Vehicle simulation

Availability

Both Docking for WPF and Gauge for WPF will be included in Actipro WPF Studio v4.0.  We expect final release in the coming weeks.

Tags:   ,
Categories:   Actipro | In development | WPF | XAML
Actions:   E-mail | Permalink | Comments (0) | Comment RSS



Thursday, 15 May 2008 05:26 by Bill Henning

How to prevent blurry images and lines in WPF

In our latest maintenance release of WPF Studio's Shared Library v3.5.0427, we have added a simple decorator class called PixelSnapper.

The PixelSnapper decorator basically snaps the measurement of its child content to integer values, thereby helping to prevent blurry images and borders that may appear after it.

The Issue: Blurry Images and Lines in WPF

A problem in WPF is that images and borders can become very blurry when they are positioned on non-pixel boundaries.  This makes the application appear to be poorly designed to end users even though technically, the developer did nothing wrong.

How does this scenario occur?  Very easily in fact.  Say you have a standard WPF Menu at the top of your Window.  The text in the menu items may measure to 12.5 pixels high.  Then lets assume that we have 2 pixels of padding.  Now we have a Menu that is 16.5 pixels high and the problem has been introduced.

The control directly under the Menu will start at vertical location 16.5.  If this control is an Image, all the pixels in the image will appear blurry in the vertical direction since each lies half on one pixel and half on the one below it.  Even setting SnapsToDevicePixels to true does nothing to correct the issue.

A Visual Sample

In the screenshot below, we have a Border with a PixelSnapper surrounding it.  In the left sample, the PixelSnapper has snapped its contents to integers, the default behavior.  In the right sample, the PixelSnapper functionality has been disabled.

PixelSnapper

A demonstration of the differences between using and not using PixelSnapper

Note how the images, which are laid out after the Border, are blurry when not using PixelSnapper functionality due to the decimal size of the Border.

Effective Use of PixelSnapper

Where should you use PixelSnapper?  Generally, text elements like TextBlock controls are the only ones that will measure to decimal values.  So any time you have a text control in your UI and that control will affect the layout of other controls, we recommend you surround it with a PixelSnapper in your XAML.  This will keep everything in your UI on pixel boundaries, enabling images and lines to remain crisp and clear.

Several Options

PixelSnapper includes options for controlling how the separate horizontal and vertical measurements are rounded.   Options for each include None, Floor, Ceiling, and Round.

Tags:   ,
Categories:   Actipro | New features | WPF | XAML
Actions:   E-mail | Permalink | Comments (2) | Comment RSS



Tuesday, 13 May 2008 14:44 by Bill Henning

Sneak Peek: Docking for WPF (Part 2 - XBAP Functionality)

This is the second sneak peek for the forthcoming Docking for WPF product that will be added to WPF Studio upon completion. 

The runtime functionality is progressing very well.  We have been getting questions from customers as to the XBAP capabilities of the docking windows.  There's no better to relate these than to show a live screenshot.

Docking

The docking functionality in an XBAP, even with support for floating windows

The screenshot above shows Docking for WPF being hosted in an XBAP browser application.  To create the screenshot we started with a default layout that was created in XAML and then at run-time, dragged the Solution Explorer tab to a floating location. 

Docking for WPF uses a custom control class that mimics Window controls but can be used in contexts like XBAPs.  It supports all the main functionality found in Window such as resizing, etc.  By using this control, we can support floating tool windows in XBAP applications.  They even have nice outer drop shadows to give them some depth.

Look for more posts on Docking for WPF development coming soon!

Tags:   ,
Categories:   Actipro | In development | WPF | XAML
Actions:   E-mail | Permalink | Comments (0) | Comment RSS



Monday, 14 April 2008 07:28 by Bill Henning

First Look: Breadcrumb for WPF

The last major control that will be added to our Navigation for WPF product in the upcoming WPF Studio v3.5 maintenance release is the Actipro Breadcrumb control.  The Breadcrumb concept was introduced in Windows Vista to replace the old style of address bar. 

Breadcrumb
The Breadcrumb control

The Breadcrumb control is essentially a condensed version of a TreeView.  Instead of showing a full hierarchy, only the selected path down the tree is displayed.  We've put a lot of work into this control to make sure it has all the Windows Vista features along with some additional ones.

Drop-Down Selection

When the drop-down arrow next to an item is clicked, a popup menu displays containing the child nodes.  Simply click on a child node to select it.

Overflow

When the width of the Breadcrumb is not large enough to support the display of all the items, a chevron button appears at the left side of the Breadcrumb.  Clicking the button shows a menu containing access to all the hidden parent nodes.

BCOverflow

The Breadcrumb with an overflow menu displayed... the top portion is the stack of overflowed items, and the bottom portion is the list of items for the root minimized Desktop node 

Auto-Minimize

Breadcrumb can be configured to auto-hide any number of nodes at the top of the hierarchy when child nodes are selected.  This behavior defaults to hiding only the root node.  For example, in a file system when you select something below the Desktop, the Desktop node minimizes but is fully accessible from a drop-down button that is displayed in its place.  This allows you to hide nodes that aren't commonly used but still keep them accessible.

Tail Items

Tail items are a really neat feature that is unique to Actipro Breadcrumb.  Not even Vista's Breadcrumb has it.  By default, the last item displayed is the selected item.  However you can configure the Breadcrumb to display any number of tail items. 

BCProgressiveFade

The Breadcrumb showing a progressive fade feature for tail items 

As an example, say you drill down to a leaf node in your tree.  Then you click a parent node item to select the parent.  If tail items are enabled, the previously-selected leaf node will still be visible although with a faded appearance.  This allows end users to quickly jump back to a previously-selected child node.

Edit Mode

By clicking on the icon at the left of the Breadcrumb, you can jump into "edit" mode.  In this mode, the node items disappear and are replaced by a TextBox where you can enter the full path to the desired node directly. 

BCEditMode

The Breadcrumb showing an active edit mode

You have total control over how the text path is converted to a node path.

Action Buttons

Custom action buttons may be added to the right side of the control.  These can be anything you wish, however for proper usage you will want to have their purpose be related to the nodes represented in the Breadcrumb.

Progress Bar

Just like Vista's Breadcrumb, Actipro's BreadCrumb fully supports a progress bar embedded in the background of the control.  You can optionally use this to reflect loading progress when a new node is selected.  It uses our AnimatedProgressBar control that was described in a previous blog post

 BCProgressBar

The Breadcrumb showing a progress bar in its background, indicating to the end user that an operation is in progress

Features include animated smooth progress transitions, multiple states (green, yellow, red), and more.

Themes

Breadcrumb supports multiple built-in themes, everything from Windows Classic to Vista.

We are currently working on the samples and documentation for Breadcrumb, and expect to have it released in the next several days.

Tags:   , ,
Categories:   Actipro | In development | Windows Vista | WPF | XAML
Actions:   E-mail | Permalink | Comments (1) | Comment RSS



Tuesday, 8 April 2008 04:04 by Bill Henning

First Look: PopupButton for WPF

Another smaller new control that is ready for the upcoming WPF Studio v3.5 maintenance release is PopupButton.

PopupButton

A PopupButton with its resizable popup displayed

PopupButton allows you to easily define a button that can display a popup.  The popup can show any WPF content or can optionally display a ContextMenu.  The popup content and context menus can be defined in XAML or dynamically in code.

There are several display modes for the button.  It can show a split mode where the button is clickable separately from the popup portion.  The split can be removed so that the entire button displays the popup when clicked.  In this mode, you also have an option of hiding the content area and just showing an arrow indicator.  The other option is the turn off the popup portion and make it behave like a normal button.

Another great option is the ability to have the button render "flat" until the mouse moves over it, at which point the background and borders appear.

Numerous themes are included with the control.

In our next "first look" post, we will talk about a major new control for the maintenance release that uses PopupButton.

Tags:   , ,
Categories:   Actipro | In development | WPF | XAML
Actions:   E-mail | Permalink | Comments (0) | Comment RSS



Monday, 7 April 2008 02:46 by Bill Henning

First Look: Aero Wizards for WPF

We're getting very close to having the next big maintenance release for WPF Studio v3.5 ready.  One of the larger new controls that is part of Wizard is the new AeroWizard control.  AeroWizard inherits our normal Wizard control but provides a custom UI that mimics the style of wizards found in Windows Vista.

AeroWizard

An AeroWizard control that shows how easy it is to create Vista-like wizards  

Note that all of the glass rendering and title bar area is handled for you.  We have a special AeroWizardWindow class that is a Window intended to contain an AeroWizard.  You can interact with the expanded title bar region just like you would in the true non-client title bar area of the window, meaning double-click to toggle maximization, click and drag to move the window, right click to display the system menu, etc.

In Aero wizards, the Back button appears in the title bar to keep consistency with the other Vista explorer windows and task dialogs.

Since AeroWizard inherits Wizard, it supports all the many features you've come to love in the core Wizard product, including command-base page switching, animated page transitions, and much more.

Want to get started building Aero wizards fast?  The new build will include a VS 2008 item template that gets you going in seconds with a fully-functional Aero wizard template window.

Command Buttons

No Aero wizard is complete without the special buttons called command buttons that sometimes allow for choices within the main page area.  We've fully implemented command buttons for you, and they even have the smooth animation when you move the mouse over them or click on them.

We're very excited to offer Aero wizards in WPF Studio with the upcoming release.

Tags:   , , ,
Categories:   Actipro | In development | Windows Vista | WPF | XAML
Actions:   E-mail | Permalink | Comments (0) | Comment RSS



Friday, 4 April 2008 04:58 by Bill Henning

WPF and Aero glass causes ClearType to fall back to grayscale antialiasing

We had a customer write us the other day mentioning that ClearType was turning off when using our RibbonWindow class in Windows Vista with Aero enabled and was falling back to grayscale antialiasing. 

After a lot of debugging and searching, we found that the root of the problem was the use of Vista's Aero glass in the client area of a Window in WPF.  Basically if glass is disabled or not available (like in Windows XP), everything is fine and renders properly using ClearType.  However if you implement your WPF Window such that glass can enter the client area (like in our RibbonWindow or previously-posted GlassWindow that is soon to be released), ClearType will disable and grayscale antialiasing will be used instead.

We traced the line that causes the issue down to this one, which is necessary for any WPF Window to properly support Aero glass in its client area:

// Ensure the background of the composition target is transparent
HwndSource.FromHwnd(hwnd).CompositionTarget.BackgroundColor = Colors.Transparent;

Basically if the Colors.Transparent is set to the Window's composition target, ClearType becomes disabled.  If you don't set this however, then glass is not able to enter the client area of the Window.

Here is a great post by Dax Pandhi on how to enable Aero glass in WPF Windows.

In there you can see how the line of code above is used to notify Win32 to use a transparent background for the client area of the window.

After some more searching on Google, we found this post too which explains the issue a bit more:

Give me back my ClearType

That post shows some screenshots of the issue and is very helpful for telling what things will cause ClearType to disable.

I've posted a question about this issue in the Microsoft WPF forum and hopefully Microsoft will do something about this in the future.

Tags:   , , , ,
Categories:   Actipro | Tips and tricks | Windows Vista | WPF | XAML
Actions:   E-mail | Permalink | Comments (0) | Comment RSS



Thursday, 3 April 2008 07:58 by Bill Henning

First Look: GlassWindow for WPF

Another new control in the upcoming Actipro WPF Studio v3.5 maintenance release is GlassWindow.

It is a normal Window however adds some additional property that allow you to extend Aero glass effects in Vista into the client area of the window.  It's very simple to use, you just ensure IsGlassEnabled is true and set the thickness of the client area glass that you want.

GlassWindow

A GlassWindow with Aero glass extended into the client area of the window

As an added feature, you can set the glass thickness to -1 to make the entire background of the window be glass.

Tags:   , , ,
Categories:   Actipro | In development | WPF | XAML | Windows Vista
Actions:   E-mail | Permalink | Comments (0) | Comment RSS