The Actipro Blog

All the latest UI control development news from Actipro

WPF, UWP, and Silverlight v2018.1 Maintenance Releases

BlogPostBanner-2018.1-Maint

Our v2018.1 WPF, Universal Windows, and Silverlight controls have all been updated with new maintenance releases that are now ready for download.  There were a large number of minor enhancements and bug fixes made across various products.

See the announcement posts for the detailed list of enhancements and updates:

TaskDownload TaskBuyNow

WPF, UWP, and Silverlight Controls 2018.1 Released

BlogPostBanner-18.1

We're happy to announce that the 2018.1 versions of our WPF, Universal Windows, and Silverlight controls have been released.  These versions include a new WPF Shell product, new features, and a lot of minor updates and bug fixes throughout the control sets.

See all the details on the 2018.1 releases in the various announcement posts:

TaskDownload TaskBuyNow

Introducing Shell Controls (WPF only)

The 2018.1 version of the WPF Controls introduces a beta of a new Shell controls product that we've been developing the past several months.

Actipro Shell controls allow for easy folder and file browsing. While the product comes packed with a pre-built implementation for the Windows shell that mimics Windows Explorer, the controls are fully customizable, allowing you to filter or change the folders/files presented. Or build your own shell service to support other files systems, such the remote side for a FTP client.

ShellControls

The ShellTreeListBox control presents a shell folder hierarchy in a tree structure. It is often paired with a ShellListView control, which shows the contents of a selected folder using column-based property display. Both controls support customizable tool tips, context menus, multiple image sizes that account for high-DPI scenarios, and in-line renaming.

All of the UI found in the Shell controls is native WPF, even the context menus. Unlike competitive products with interop-based user interfaces, the Actipro Shell controls don't have any airspace or focus issues, and every bit of UI can be fully-themed or even customized with XAML data templates.

Although these controls are still in beta, they should be stable for usage in production.  If you would like to submit suggestions for improvement, please post them in our Shell discussion forum or join our Slack workspace.  We've done a lot of planning with beta testers in the Slack #uicontrols channel.

TaskLearnMore TaskWideChatWithUs

March WPF, UWP, and Silverlight v2017.2 Maintenance Releases

BlogPostBanner-2017.2-Maint

Our v2017.2 WPF, Universal Windows, and Silverlight controls have all been updated with new maintenance releases that are now ready for download. 

Let's take a quick look at some of the more notable features that were added.

Charts

Bar Customization

The series style selector's method for picking each bar's style in a bar chart has been updated to be passed bar index and count, allowing for individual bars to be customized.

Docking/MDI

UIA Updates for Better Coded UI Test Support

The docking window container UIA hierarchy has been updated to better support Coded UI Test.  These changes should now allow Coded UI Tests for controls in docking windows to record and play back successfully.

Keeping Auto-Hide Popups Open For Dialogs

There is now a property that can be set temporarily to prevent an auto-hide popup from closing when WPF keyboard focus is lost from it, which can happen if a dialog window is opened from a button on the docking window.  In this scenario in the past, the button could be clicked and the auto-hide popup might slide back.  The new option allows the popup to remain open when the dialog is open.

Improved Dragging Over Nested Linked Dock Sites

Updated docking window logic now shows dock guides by default for linked dock sites at the same nesting level, when there are multiple dock sites nested.  If there are multiple linked dock sites covering the same drag location, the Shift key can be held to switch dock guides to an alternate dock site.

Editors

MaskedTextBox Input Improvements

Logic has been updated to block some input that would trigger a shorter match.

NaN and Infinity Support Added to Multiple Edit Boxes

The CornerRadiusEditBox, PointEditBox, RectEditBox, SizeEditBox, ThicknessEditBox, and VectorEditBox controls now all have properties that can be set to allow NaN and infinity component values.

Gauge

Improved Digital Gauge Segment Rendering

DigitalGauge

The distance between digital gauge segments for the 7-segment (normal) and 14-segment (normal) character sets has been reduced, making the digital gauges easier to read at certain sizes, and more like most real readouts.

SyntaxEditor

Free Sample C#/VB Syntax Language Updates

The free language definition files now support C# 6 and VB 14 enhancements.

XML Start Tag Self-Closing

The XML auto-completion logic in the Web Languages Add-on will self-close start tags if a '/' is typed.

Summary

There were also a large number of smaller improvements made throughout the products.  See the announcement posts for the detailed list of enhancements and updates:

TaskDownload TaskBuyNow

WPF, UWP, and Silverlight v2017.2 Maintenance Releases

BlogPostBanner-2017.2-Maint

Our v2017.2 WPF, Universal Windows, and Silverlight controls have all been updated with new maintenance releases that are now ready for download.  It is highly recommended that you get these new builds since many products received numerous minor enhancements and bug fixes. 

Let's take a quick look at some of the more notable features that were added.

Charts

Display Optimizations

The line charts have had optimizations in them to try and align to pixel values to reduce anti-aliasing.  While this generally improved readability, when rendering a curve like a sine wave, this can result in some jaggedness of the curve.  We added an option that allows these display optimizations to be turned off for those scenarios.

Docking/MDI

Dock Host Changed Event

A new event is raised whenever a docking window's dock host changes, allowing for knowing when a docking window transitions to a floating state and back.

Dragging Enhancements

The dragging experience for a single tab has been improved.  When dragging a docking window over a nested linked dock site, the Shift key can be used to target the outer dock host.

Interop Improvements

Numerous improvements were made to how InteropFocusTracking handles mouse clicks and focus tracking for interop controls in docking windows.

Dock Guides

Dock guides (when in non-hosted node) can now render outside of the bounds of the target dock host when necessary.  This scenario can occur if the containers in the dock host are small.

Editors

MaskedTextBox Data Binding

A new MatchedText property has been added to MaskedTextBox to allow data binding without any prompt text.

Pointer Double-Clicks

Double-clicking an edit box part now selects the entire part's text.

Color Picker Alpha Component

The ColorPicker's alpha component has been changed to be percentage-based, which is more in line with most applications.

Grids

Key Handling

The ability to customize how Enter keys are handled for various property editor types has been added.

SyntaxEditor

Read-Only Regions

Read-only regions have been enhanced with properties that determine if editing is allowed on their first and/or last edges.

Code Outlining

The code outlining logic has been Improved to better handle mismatched outlining nodes.

JSON Parser

The JSON parser in the Web Languages Add-on has been enhanced with better error handling.

Theme Browser

We've updated the Theme Browser utility in the Sample Browser with a new textbox that allows filtering of resources.

Summary

There were also a large number of smaller improvements made throughout the products.  See the announcement posts for the detailed list of enhancements and updates:

TaskDownload TaskBuyNow

WPF, UWP, and Silverlight v2017.2 Maintenance Releases

BlogPostBanner-2017.2-Maint

Our v2017.2 WPF, Universal Windows, and Silverlight controls have all been updated with new maintenance releases that are now ready for download.  It is highly recommended that you get these new builds since many products received numerous minor enhancements and bug fixes. 

Let's take a quick look at some of the more notable features that were added.

Docking/MDI

The mouse wheel can now scroll document tabs when in an overflow situation and using certain tab overflow behaviors.

Editors

Updated the color pickers such that the end user can tap and drag anywhere in a hue ring or saturation/brightness square to change color attributes, and not just on the thumb.

BrushEditBoxOpened

Added a new drop-down to ColorPicker that allows switching between RGB and HSB text input modes.

ColorEditBoxHsb

Added new features for adding custom inline UI elements within edit boxes, like the "Now" button in the TimeEditBox below.

TimeEditBoxInline

Improved the DateEditBox and TimeEditBox default formats to better support parsing of entered text values that lack part delimiters.

Grids

Added the TreeListViewColumn.SortDirection property and related ColumnSortDirection enumeration that can be used to indicate that a sort glyph should appear in the column header when paired with a custom sorting mechanism.

TreeListViewSortIndicators

Improved TreeListBox to better handle property updates from view-models on other threads.

Improved TreeListBox selection tracking performance.

SyntaxEditor

Improved numerous edit actions to retain their final selection after the action goes through an undo/redo process.

Improved how Tab indenting is handled when there is a block selection.

Improved the Cut Line to Clipboard edit action to support multiple lines.

Improved the .NET Languages Add-on's logic for selecting the best IntelliPrompt parameter info member overload when typing a comma at the end of an argument list.

SyntaxEditorXmlLineCommenter

Improved the XML line commenter in the Web Languages Add-on to comment the entire line text when there is no selection.

Summary

There were also a large number of smaller improvements made throughout the products.  See the announcement posts for the detailed list of enhancements and updates:

TaskDownload TaskBuyNow

WPF, UWP, and Silverlight Controls 2017.2 Released

BlogPostBanner.17.2

We're happy to announce that the 2017.2 versions of our WPF, Universal Windows, and Silverlight controls have been released.  These versions include some new controls, new features, and a lot of minor updates and bug fixes.

See all the details on the 2017.2 releases in the various announcement posts:

SyntaxEditor

Intra-Line Adornments

Full support for intra-line adornments is now included.  These allow whitespace to be reserved above and/or below view lines, and adornments rendered in that space.

CodeLens

A first new sample shows implementation of a Visual Studio-like Code Lens adornment with info display and hyperlink. 

PeekDefinition

A second sample shows a Visual Studio-like Peek Definition (embedded editor) display.  This is accomplished using a second SyntaxEditor within an adornment of the outer SyntaxEditor.

Vertical Scrolling

Vertical scrolling logic has been refactored to better handle view lines of various sizes.

Code Outlining

A couple new code outlining commands have been added: apply default outlining expansion and expand all outlining.

.NET Languages Add-on Roslyn Extensions

A new optional assembly is available that has Roslyn extensions for loading IBinaryAssembly instances that can be referenced by a project assembly, instead of using normal .NET reflection.

.NET Languages Add-on IntelliPrompt

IntelliPrompt completion is now available for object creation expression initializer member names.

ObjectInit

Docking/MDI (WPF/UWP)

Floating Windows

A new property can be data-bound to your VM to float or restore a docking window.  The default location request event allows for specifying that a docking window should open in a floating dock host.  Docking windows that were closed while floating now support more precise restoration later.  Dragging standalone floating docking windows by their tabs now has a better experience.

Contextual Indicators

The read-only contextual indicator for documents now uses a separate display mechanism from the custom contextual indicators, allowing both to show at the same time.

Editors (WPF/UWP)

AutoCompleteBox

A new AutoCompleteBox control has been added that allows text entry and provides suggestions for auto-completion.

AutoCompleteBox

This kind of control is ideal for use in search query and quick launch kinds of scenarios.

DateEditBox

DateEditBoxOpened

Clicking a date on the popup calendar now closes the popup.

Grids (WPF/UWP)

Drag/Drop

The TreeListBox item adapter has been updated with a method that fires when hovering over an item during a drag, allowing you to determine whether it should be expanded.

TreeListBoxDragDrop

New adapter methods have also been added that are called immediately before and after a drag, allowing for custom adornments to be displayed while dragging.

Shared Library (WPF/UWP)

AdvancedTextBlock

A new AdvancedTextBlock control has been added that can show a tooltip when overflowed and can highlight spans of text based on captured text ranges (i.e. filter match results).

TaskDownload TaskBuyNow

WPF, UWP, and Silverlight v2017.1 Maintenance Releases

BlogPostBanner-2017.1-Maint

Our v2017.1 WPF, Universal Windows, and Silverlight controls have all been updated with new maintenance releases that are now ready for download.  It is highly recommended that you get these new builds since many products received numerous minor enhancements and bug fixes. 

See the announcement posts for the detailed list of enhancements and updates:

TaskDownload TaskBuyNow

WPF, UWP, and Silverlight Controls v2017.1 Released

2017.1.BlogPostBanner

The 2017.1 versions of our WPF Controls, Universal Windows Controls, and Silverlight Controls were recently released, with the WPF and UWP controls getting some enormous updates in these versions.

The primary focus of the 2017.1 version in WPF and UWP was to add an improved PropertyGrid control and tree controls (TreeListBox and TreeListView) in our new Grids product, and to update Editors to be more modern/lightweight, and share a codebase between the two platforms.  Another focus was on maximizing the performance of all the controls.  The new PropertyGrid for instance shows a massive speed increase over the older WPF v2016.1 PropertyGrid.

PropertyGrid

See the entire lengthy detailed update list in these announcement posts:

If you want to discuss the new controls added in 2017.1 or have suggestions for additional features, please join our #UIControls channel in our Slack team.  It's free and you can chat with us and other customers.

Please note that the v2017.1 WPF Controls have PropertyGrid, Editors, and licensing breaking changes to support better API design and features, so be sure to read the "Converting to 2017.1" topic in the documentation that comes with the controls.  It walks through everything in detail.

ProductHeadingGenericGrids

Grids is a new product added to the WPF and Universal Windows Controls in v2017.1.  It features three primary controls:  TreeListBox, TreeListView, and PropertyGrid.

TreeListBox

TreeListBox is a single-column control that renders a tree structure.  It is designed to mimic the features found in the Visual Studio Solution Explorer.  You have full control over the appearance of each node, and can easily wire up any tree data model for rendering via the use of our adapter pattern.

TreeListBox

The UI tree is virtualized for optimal performance.  Unlike the standard WPF TreeView, TreeListBox is a single ItemsControl that is far less resource intensive and doesn't experience odd vertical scroll jumpiness.

TreeListBoxAsyncLoading

You have full control over whether nodes are expandable, when they load children (and with optional use of async loading with a busy indicator as seen above), and selection modes (single/multiple).  A powerful filtering mechanism is included that allows you to add type-to-filter support.  F2 can initiate inline editing of node text.  Drag and drop can be enabled and you determine what is dragged/dropped.  This just scratches the surface, and there are many other features included.

TreeListView

The TreeListView control builds on top of the foundation provided by TreeListBox and adds multiple columns with an optional header, similar to a standard WPF ListView.

TreeListViewColumns

Columns can be sized using several algorithms, resized/reordered by the end user, or certain columns frozen such that they don't scroll horizontally.  Grid lines can be optionally displayed.

PropertyGrid

The PropertyGrid control is based on TreeListView and renders a grid of all the properties of one or more objects and their values. Properties can be displayed by category, alphabetically, or using a custom sort.

PropertyGridBrushEditBoxOpen

A PropertyGrid control was available in older versions of our WPF Controls, but we rewrote much of the internals for v2017.1 and optimized the object model to focus on maximizing speed and ease of use.  The new PropertyGrid can load large complex objects almost instantly.  It's simpler than ever to customize how properties are edited via the use of property editor DataTemplates.  You have full control over which properties are presented and how.

ProductHeadingGenericEditors

The 2017.1 version ported the Universal Windows Editors back to WPF so that they now share a codebase.  This decision was made because the newer Editors designs are much more lightweight in terms of UI elements used in each control, and the number of bindings involved.  This improves UI performance when using many Editors controls in grids like PropertyGrid.

You'll still find many great editing features such as the ability to use arrow keys when typing in edit boxes to increment or decrement part values.

DoubleEditBoxOpenedCalculator

Each edit box now has an optional dedicated picker control that is used in the drop-down, like the calculator shown above.  The picker can be easily styled if a custom appearance is needed.

DateTimeEditBoxOpened

In addition to porting the UWP Editors to WPF, we also added a number of new editor controls.  Editors in both platforms feature specialized edit boxes and pickers for these .NET types:  Brush, Byte (WPF only), Color, CornerRadius, Date, DateTime, Double, Enum, Guid, Int16, Int32, Int32Rect (WPF only), Int64, Point, Rect, Single, Size, Thickness, Time, TimeSpan, and Vector (WPF only).

Rating

Editors also has these other various miscellaneous controls:  Calculator, CountryComboBox, CurrencyComboBox, EnumListBox, GradientStopSlider, HsbColorPicker, MonthCalendar, RadialHuePicker, Rating, SaturationBrightnessPicker, and Spinner.

ProductHeadingGenericShared

The licensing mechanism was updated for the WPF Controls in v2017.1 to be simpler.  Regardless of which WPF products you've licensed from us, your apps will only need a single line in the licenses.licx file going forward.  Please read the Converting to 2017.1 topic in the documentation for details on these updates.

Enjoy the new version!

TaskDownload TaskBuyNow

WPF, UWP, and Silverlight v2016.1 Maintenance Releases

Maintenance16.1.BlogPostBanner

Very large maintenance releases of our v2016.1 WPF, Universal Windows, and Silverlight controls have been released and are now available for download.  While there are an enormous number of minor updates and bug fixes made across the various UI control product range, the following lists the major updates that were made.

Visual Studio 2017 Support

These Actipro maintenance releases update our UI controls to support the Visual Studio 2017 RC version that was released on Wednesday.  Congratulations to the Microsoft teams involved in delivering the next major version of our favorite IDE!

ProductHeadingGenericDocking

A new event has been added that is raised when dragging docking windows over a drop target.  Handle this event to specify that certain dock guides should be hidden that normally would be visible.

DockingDockGuides

A new property is available to prevent floating dock hosts that contain MDI from showing in the Windows taskbar.  (WPF only)

ProductHeadingUWPEditors

A new Calculator control has been added that provides a familiar calculator interface to interactively calculate numeric values.  A new PickerKind property is available on DoubleEditBox and Int32EditBox to allow for optional usage of the calculator in the popup picker.

DoubleEditBoxOpenedCalculator   TimeSpanEditBoxOpened

New edit box and picker controls have been added for the Int16, Int64, Single, and TimeSpan types.

A new property has been added that determines the scenarios (e.g Enter key press, etc.) in which a value commits when editing in an edit box.

A new property has been added that determines the wrapping behavior used when spinning past a minimum or maximum value in the active part in an edit box.

Added the DoubleEditBox.IsNaNAllowed, IsNegativeInfinityAllowed, and IsPositiveInfinityAllowed properties, which allow entry of those related values.

DoubleEditBoxNaN

Improved Int32EditBox to support hexadecimal formats.

Improved GuidEditBox to support multiple formats.

GuidEditBox

Added UI automation peers for numerous controls.

ProductHeadingWPFEditors

The MaskedTextBox control added a default context menu and the gradient brush editor added a Remove Stop button.

BrushEditBox

ProductHeadingGenericGrids

The TreeListBox control and its derivatives added a powerful data filtering mechanism that uses string, boolean, and predicate-based logic to filter items.

TreeListBoxFiltering

A new sample that demonstrates filtering was also added.

ProductHeadingGenericSyntaxEditor

Added the ZoomLevelIncrement property that controls the mouse wheel zoom step amount.

Added several UI automation peers for internal SyntaxEditor components.

CompletionListCentered

Improved the IntelliPrompt completion list to try and keep the item matched by typing scrolled to the middle.

ProductHeadingGenericShared

Added a UI automation peer for the RadialSlider control.

RadialSlider

Updated the RadialSlider control to support more keyboard shortcuts.

Summary

All products received numerous other minor enhancements and bug fixes.  See the announcement posts for the detailed list of enhancements and updates:

TaskDownload TaskBuyNow

SyntaxEditor Line Modification Mark Enhancements

PostBannerSyntaxEditorDevNotes

The latest maintenance releases of our v2016.1 WPF, Universal Windows, and Silverlight controls had some major work done on SyntaxEditor's line modification marks feature.  In fact, its internal logic was completely rewritten and improved.

Overview

Line modification marks use colored bars in the selection margin to tell the end user whether changes have occurred on the line, and whether those changes have been saved.

This animation shows this feature in action:

SyntaxEditorLineModificationMarks

New changes will turn the marks yellow to reflect that those lines are “dirty” (unsaved).  If you then "save" the document (which I do above after typing on two lines), the marks turn green to indicate they are now saved.

While the yellow and green marks were present in older versions, there were some bugs that could occur with their tracking over the course of multiple text changes.  Those bugs have been fixed in this latest maintenance release.

In addition we also have added orange marks, that occur when you undo past the save point.  They show anything that is different from what was saved but is not different from the document when it was originally opened.

Summary

These great new features match exactly with what is in Visual Studio and are wonderful for end users.  Grab the latest 2016.1 builds to add them to your own apps!

TaskDownload TaskBuyNow