WPF Controls 2013.2 Released

by Avatar Bill Henning (Actipro)
Wednesday, September 11, 2013 at 12:08pm


Actipro WPF Controls 2013.2 have been released and is now available for download. 

Major new features are described below.  See the announcement post for the detailed list of enhancements and updates.



A new pie chart control has been added to complement our other bar, line, area, and scatter chart offerings.


The pie chart supports advanced features like multiple label positioning and display options, legend display, nesting of multiple series, hierarchical data, and more.



Donut charts have been added as well.  All the same features found in pie charts are found in donut charts, and the hole radius is fully configurable.

Axis Tick Labels for Percentage Stacked Charts


When using stacking bar or area charts with the percentage axis option, the percentage value labels now display on the axis.

Improved Scatter Chart Samples


A new and improved scatter sample has been added.


Improved Support for Touch

Ribbon buttons have been improved to support touch-based tapping.  Popups on all ribbon controls have also been updated to be positioned properly on tablet PCs that have the "right handed" option set.


Web Languages Add-on - Advanced JavaScript Language Implementation

A new advanced JavaScript language implementation has been added to the Web Languages Add-on.


The syntax language features syntax highlighting, parsing, AST building, syntax error reporting, code outlining, delimiter auto-complete, smart indent, text formatting, and code block selection.

See a summary of the new language in this previous blog post.

Delimiter Auto-Completion

Delimiter auto-complete is where the user types a start delimiter and a related end delimiter is auto-inserted after the caret.


In the screenshot above, the { character was typed and the } character was auto-inserted.  This feature has been added to several of the languages in our add-ons.

Delimiter Indent Provider

Curly brace auto-indent can now be easily added to any language, and it has been added to our C# and JavaScript languages in the add-ons.

When the caret is in the middle of a curly brace pair, pressing Enter normally will move the close curly brace to the next line with the caret right in front of it.  If you have an indent provider for your language, the close curly brace will be indented properly however it's still not an ideal situation because you generally want the caret to be on its own line before the close curly brace's line.


This scenario is where curly brace auto-indent comes in!  This feature injects a new blank line in between the braces, indents one more level, and positions the caret on that line.

Indentation Guides

Indentation guides are subtle vertical lines that render at each tab stop on lines prior to the first non-whitespace character.  They help visually align the indentation of visible code blocks.

You can see the silver indentation guide lines in the tab stops within this screenshot:


Whitespace-only lines are intelligent and render indentation guides based on the tab stop level of surrounding text.

Improved Code Fragments Performance

Lexer and token scanning performance has been improved when using our code fragments feature, which allows you to set header and footer text to surround the document's text for purposes of parsing.

Improved Printing Support

A custom highlighting style registry can now be set explicitly for printouts.  This is ideal if your editor is in a dark theme since then you can use an alternate highlighting style registry designed for light backgrounds on printouts.

Rendering of printouts has also been improved when the syntax highlighting option is off.

.NET Languages Add-on - IntelliPrompt Parameter Info for Array Indexers

Automated parameter info support has been added when the end user edits array indexers.

.NET Languages Add-on - Customizing Completion Items Sample

A new sample is now included that shows how to add and remove items from the C# and VB automated IntelliPrompt completion list.  This ability lets you filter out certain completion list items or add your own custom ones before the list is displayed to the end user.


Improved WindowChrome to Not Cover Auto-Hidden Windows Taskbar

In the past versions, WindowChrome (and thus RibbonWindow) would cover up an auto-hidden Windows taskbar when the window was maximized.  This issue has now been resolved, and the auto-hidden taskbar is now visible.



The InertiaScrollViewer control is a drop-in replacement for the native WPF/Silverlight ScrollViewer control but allows you to scroll content using touch, similar to what you're used to on Windows 8 and mobile devices.

It reacts to dragging, flicking, mouse wheel, and normal mouse operation via the scrollbars. You can adjust properties like EasingFunction, VelocityTimeRatio, and VelocityDistanceRatio to fully control how inertia scrolling looks and feels.


In the screenshot above, you can see how our main Sample Browser pages have been updated with InertiaScrollViewer, allowing full touch interaction and navigation within them.

TaskDownload TaskLiveDemo TaskBuyNow

WinRT XAML Controls 2013.1 Build 122 Released

by Avatar Bill Henning (Actipro)
Friday, June 28, 2013 at 1:39pm


WinRT XAML Controls 2013.1 build 122 have been released and are now available for download.

This maintenance release adds the Charts grouped axis features described in a previous post, that are currently available in the WPF and Silverlight versions.


This screenshot shows how some fruit data has been grouped by color and its results rendered to a bar chart.

See the announcement post for the detailed list of enhancements and updates.

TaskDownload TaskLiveDemo TaskBuyNow

Chart Features - Grouped Axis

by Avatar Bill Henning (Actipro)
Tuesday, May 14, 2013 at 7:51am


In the latest WPF and Silverlight controls maintenance releases, we've added some important functionality to our Charts product. In the initial release, we could chart quantifiable values (such as numerics and DateTime) on a Cartesian axis. Now we've added the ability to chart strings and other complex types using our new XYGroupedAxis.

Grouped Axis Example

Take this complex type as an example:

class Transaction {
    public double Price { get; set; }
    public string SalesPersonName { get; set; }

Given we have a collection of Transaction objects on our data context...

public ObservableCollection<Transaction> Transactions;

...then we can bind our BarSeries.ItemsSource to the collection of Transactions. The primary axis is our numeric value (Price), and the secondary axis is our string (SalesPersonName). Those are specified using YPath and XPath, respectively.

        <BarSeries ItemsSource={Binding Transactions} 
                    XPath="SalesPersonName" YPath="Price"/>

If our transaction data looks like this:

















Now our chart will look like so:


Notice how on the x-axis, the strings are grouped by equality. So all transactions for Marcus, Mary, and Steve are grouped into single bars. Also notice how on the primary axis, the numeric values are summed together for each group. So for Mary, who had transactions of 300 + 50 + 100, the grouped value becomes 450.

Further Customization

There are several customization options -- you can change how items are grouped by setting XYGroupedAxis.GroupingFunc. XYGroupedAxis.LabelFunc controls how groups are labeled, and XYGroupedAxis.SortingFunc controls how groups are sorted. Using these, we can take the data above and group by the first letter of the name:


Here, notice that grouping is done by comparing the first letter of the name, rather than equality of the entire string. LabelFunc has been specified to show the first letter. Note how the values for Mary and Marcus get summed together on the Y axis.


XYGroupedAxis allows you to provide custom logic to chart complex types easily. Download the free trials of our WPF or Silverlight controls and check it out!

This same functionality will also be coming to the WinRT XAML version of Charts in its next release.

TaskDownload TaskLiveDemo TaskBuyNow

Silverlight Controls 2013.1 Build 151 Released

by Avatar Bill Henning (Actipro)
Wednesday, May 8, 2013 at 7:59am


Silverlight Studio 2013.1 build 151 has been released and is now available for download.  Several great new enhancements are part of this build.

This build has the following major new features:

  • Charts: Added the ability to provide strings and complex types as chart data using the new XYGroupedAxis.
  • Charts: Added support for multilevel XPath and YPath.
  • SyntaxEditor: Added new auto-correct features, with a pre-defined AutoCaseCorrector language service for performing character case correction.  Easily add auto-case correct features to custom languages.
  • SyntaxEditor: Updated the sample VB, VBScript, and PowerShell languages to perform auto-case correction.
  • SyntaxEditor: Added new code block selection features, which let languages that implement an ICodeBlockFinder service expand/contract the selection to logical code blocks via Ctrl+Num+ and Ctrl+Num-.
  • SyntaxEditor: Added a new free Markdown syntax language definition.
  • SyntaxEditor: Made performance improvements in numerous areas.
  • SyntaxEditor .NET Languages Add-on: Added an IAutoCorrector language service implementation for VB that case corrects keywords.
  • SyntaxEditor .NET Languages Add-on: Added ICodeBlockFinder language service implementations for C# and VB.
  • SyntaxEditor .NET Languages Add-on: Updated the resolver to handle the implicit value parameter in property setters.
  • SyntaxEditor .NET Languages Add-on: Improved the C# text formatter.
  • SyntaxEditor Web Languages Add-on: Added ICodeBlockFinder language service implementations for XML.

See the announcement post for the detailed list of enhancements and updates.

TaskDownload TaskLiveDemo TaskBuyNow

Chart Features - Axes

by Avatar Bill Henning (Actipro)
Monday, April 15, 2013 at 9:31am


The recent 2013.1 versions of our WPF, Silverlight, and WinRT XAML controls added full-size charts products.axis1

One feature of our new Charts products are axes. Axes allow you to visualize the value range of your chart by labeling values.

Minimum and Maximum Values

Changing axis values such as Minimum and Maximum will determine what data displays on your chart and where. Here is the same data displayed in two charts. In the first, Minimum and Maximum are determined automatically.


In the second one, they are set manually to arbitrary values.


Axis Positioning

We have several capabilities to help you achieve the right look and feel for your application. The first is axis positioning, where you can place axes on either end of the chart.


Tick Intervals

Next is the ability to set the tick intervals. Here, we see two of the same chart. In the first, tick intervals are set to one month.


In the second, tick intervals are set to three months.



You can show major and minor ticks, and our grid feature allows you to extend those ticks behind the chart surface.


Styling Ticks

You can also style ticks to match your application.


Axis Labels

Axes can show labels on each major tick, and also a title. The angle of the labels is adjustable for when you need to put long labels on a small chart.



These are just a sample of some of the options available. There are a ton more. Download the trial and check it out!

TaskDownload TaskLiveDemo TaskBuyNow