The Actipro Blog

All the latest UI control development news from Actipro

First Look: Ribbon TextBox Hint Text

In preparation for a pretty large update to WPF Studio v3.5 that will most likely be out next week, we will be making several blog posts showing some of the new features and controls that will be available in the update.  We'll start small and get into the better features as we go.

First, we've added hint text support to Ribbon textboxes and comboboxes.  Hint text is a faded out blurb of text that appears when a textbox or combobox is empty.  It usually gives some simple instruction for related to the data that should be input to the control, or a description of that data that should be entered.

The hint text starts out somewhat opaque when there is no content in the control.  If the control gains focus, the hint text becomes slightly more transparent.  If content is entered, the hint text disappears completely.

HintText

The same TextBox in three hint text states... the top TextBox doesn't have focus or content, the middle TextBox has focus but no content, and the bottom TextBox has focus and content

Transitions between the various hint text states use smooth animations for visual appeal.

This feature can be used for Ribbon textboxes and comboboxes both inside and outside of the Ribbon.

Keep an eye on our blog as we get into some of the larger new features in forthcoming posts.

Tags: ,
Filed under: Actipro, In development, WPF, XAML

New SyntaxEditor .NET Languages Add-on IntelliPrompt Features

 

The latest build of the .NET Languages Add-on released today includes some great new features related to automated IntelliPrompt.

Extension Methods

This build adds IntelliPrompt support for extension methods, a new feature found in C# 3.0 and VB 9.0. 

Extension methods allow you to define new methods on existing types without having to sub-class or recompile the original type.  This means you can add functionality directly to types for which you don't have source code.

 ExtensionMethodsSource

The member list displayed for an Int32 parameter, showing how source-defined extension methods are applied

In the sample above, note the extension method ToStringExt is defined on the static ExtMethodProvider class.  In the TestMethod, we press "." to show a member list for its Int32 parameter val and that locates the ToStringExt method, including it in the available members for the Int32 parameter.

Extension methods can be defined in compiled assemblies or in code as above.  The most common use of extension methods is with LINQ.

ExtensionMethodsLinq

A member list displayed for a string array variable, showing how extension methods from LINQ's classes have been added to the normal members that appear on an array

Delegates

The latest build adds IntelliPrompt support for delegates.

Delegate

The parameter info tip displayed for a delegate invocation

EditorBrowsableAttribute Support

Support for recognition of the EditorBrowsable attribute is now available.

 EditorBrowsable

Note that the member list shows an entry for _AVisibleClass but not for _AnInvisibleClass since that class has EditorBrowsable(Never) applied to it

When the EditorBrowsable(EditorBrowsableState.Never) attribute is applied to a type or member, that type or member will no longer appear in member lists.

The attribute is recognized for both assembly-defined and source-defined types and members.

First Look: Docking and SyntaxEditor for WPF

A week or so ago in our newsletter we officially announced the development of Actipro Docking for WPF and Actipro SyntaxEditor for WPF.  These two products when completed will be added to our WPF Studio control bundle.

Also note that we have some other special controls in development as well, but we'll keep those under wraps for now. 

Docking

A WPF window showing tool windows that are docked and in auto-hide mode, along with a SyntaxEditor control in the content area of the DockSite

Actipro Docking for WPF

The Docking product is progressing very nicely and is expected to be the next major product added to WPF Studio.  Its design harnesses our themes framework, thereby making it easy for us to provide alternate themes such as Aero, or Office themes with minimal effort.

Docking includes many of the extremely flexible behavior options that have made our UIStudio Dock for Windows Forms product very popular.  We also have some surprises in store.  We'll get into some of these options and new features in future posts.

Actipro SyntaxEditor for WPF

We're approaching the SyntaxEditor product as an opportunity to do a lot of neat new things and make improvements to the SyntaxEditor for Windows Forms product that is recognized as the industry leader in syntax highlighting editor controls.

One design goal of ours is to try and separate out the document/parsing model to a .NET 2.0-based assembly that could be used by both SyntaxEditor for WPF, SyntaxEditor 5.0 for Windows Forms, and a future CodeHighlighter.

We are working on doing some big language design enhancements too.  Even though what we have now is great, we have a lot more ideas that we want to integrate, making it easier for you to develop both simple and complex language parsers for your editor.

More Sneak Peek Posts

Stay tuned to the blog for more information on Docking, SyntaxEditor and other new controls.  We'll continue to post new information as development progresses.

Filed under: Actipro, In development, WPF, XAML

SyntaxEditor .NET Languages Add-on Adds Generic Type IntelliPrompt

The latest build for SyntaxEditor's .NET Languages Add-on now includes complete generic type IntelliPrompt functionality.

DotNetAddOnGenericTypeMembe

A parameter info tip displayed for a generic type... notice how it has resolved the return type to String

This has been a highly requested feature by customers.  Now you can fully utilize the power of generic types such as generic collections, etc. with the .NET Languages add-on.

For instance, in the screenshot above, after you would complete the indexer reference and press ".", the member list that would display would be for type String.  Type String was declared as the "U" generic parameter in MyCollection, which was passed down to the base Collection generic type.  Therefore the String type was used to construct Collection.  With the most recent build, SyntaxEditor's .NET Languages Add-on can recognize that and provide proper IntelliPrompt related to it.

Enjoy the new features!

Where did my Ribbon go? Ribbon hides at run-time after designing with VS 2008

This is an issue that a couple customers have run into and emailed us on, so we wanted to post more about it. 

Scenario

The scenario is that you drag a Ribbon onto a Window and everything shows up fine at design-time.    But when you go to run your application, you see a blank Window.

Why Did It Disappear?

What happened was that you probably clicked and dragged something somewhere in the Visual Studio designer that either:

  • Set the Width or Height of the Ribbon to an explicit size (very bad)
  • Set the Margin around the Ribbon to something that forces it to have a smaller than desired size
  • Did the above things to a direct container of Ribbon that affects its size

At run-time a feature of Ribbon is to collapses when there is not enough space for it.  You have full control over the threshold size at which this collapse occurs.  But one of the items in the list above would have caused this collapse code to kick in because the Ribbon is being forced smaller than desired.

Resolution

To fix this problem, simply look at the XAML for your Ribbon tag and remove any Width/Height property settings.  Also check to ensure that a Margin isn't set that could be causing this.  Then run your application and everything should appear like you would expect since now the Ribbon is not being forced to a small size.

Why Does It Show at Design-Time?

In the designer we force Ribbon to stay expanded and ignore its normal run-time collapse behavior.  This is done so that you can properly visually design the Ribbon.

Further Reading

We also have a section explaining this issue in the Ribbon control's Troubleshooting topic in the product documentation.

New Ribbon Feature - Hiding the Application Button

The latest WPF Studio v3.5.0421 build includes an interesting new feature for Ribbon that was requested by several customers, the ability to hide the application button.

ApplicationButtonHidden

A ribbon with its application button hidden

This new feature can be activated with a simple Ribbon.IsApplicationButtonVisible property change.

When the application button is hidden, the QAT and tabs slide over to fill the space.

Tags: ,
Filed under: Actipro, WPF, New features, XAML

ExplorerBar for WPF - Windows XP-like task pane

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!

Filed under: Actipro, WPF, XAML, New product

NavigationBar for WPF - Complete Outlook 2007 Functionality

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!

Filed under: Actipro, WPF, XAML, New product