About Us

Actipro Software
is a leading provider of .NET user interface controls for the WPF, UWP, Silverlight, and WinForms frameworks,
and is most well-known for their SyntaxEditor syntax-highlighting code editor control.

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

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:

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.

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

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

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.

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.

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:

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.

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

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.

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.

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

DateEditBox

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.

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).

Our WPF Docking/MDI control product allows you easily add docking tool windows and a MDI (multiple document interface) to your app, one that mimics Visual Studio. We have two built-in MDI options: tabbed and standard. Tabbed is similar to the style that current Visual Studio versions use. However some customers still prefer to use the classic windowed style of MDI that we call "standard MDI".

There is no built-in standard MDI mechanism in WPF, but we provide a complete implementation in Docking/MDI with all the functionality like cascading and tiling that you would expect.

We just had a customer ask how they could animate a standard MDI window into place when it's first loaded.

We did a quick experiment in our 2016.1 version using a simple implicit Style and it worked great. Here's the results:

The animation we defined quickly fades in the window and "pops" it into place. This animation matches the animations we use elsewhere in the product such as when dock guides appear while dragging docking windows around.

Here's the code that you can place in your app's Resources to get the animation above to appear:

Today we published a WPF Controls maintenance release v2016.1 build 635. The updates are described in detail in this post. It is highly recommended that you download this maintenance release since it fixes several issues that popped up with the Docking/MDI product and makes several other minor enhancements as well.

We are now at a stage where we are about to start prepping our codebases for the upcoming 2017.1 version. Over the past few months, we've been working on an array of new and revised controls for that version, and will begin merging all that in over the coming weeks. Look for a beta testing request announcement in very early 2017.

Grids

We've been blogging about our new TreeListBox and TreeListView controls for a little while now. They have been in private alpha testing and now we have placed the alpha test in a new public Grids assembly that has shipped in this WPF and UWP maintenance release.

TreeListBox is a TreeView-like control but has many advanced features like those found in the Visual Studio Solution Explorer. See this blog post for some details on the feature list.

TreeListView inherits TreeListBox and includes all of the tree hierarchy features found in it. It also displays each row similar to a ListView, columns and all! This blog post summarizes the features found in this control.

With this public alpha release of the controls, you are able to start using them and can provide us with feedback. We'd love to hear from you, whether it be via our ticket system or Slack. Our plan is to finalize them for the 2017.1 version, but they should be pretty stable for usage now. Anyone with a WPF/UWP Studio or PropertyGrid license should be able to use them immediately under your existing 2016.1 license.

Going forward, we have already made major progress on rewriting our PropertyGrid control and basing it on TreeListView. So far, performance tests are showing that it's loading large property trees almost instantly. We'll blog more on this in the upcoming weeks.

Docking/MDI

There were a lot of tweaks and bug fixes in this build for the Docking/MDI product. We recommend you grab the latest if you use Docking/MDI.

There were numerous improvements too, including some more major ones like:

A new option to prevent a tool window from being dragged to a floating MDI area.

A new option to prevent auto-selection of tabs when there is a system drag over them.

System drags will only auto-select tabs following a brief delay when you hover over the tab.

Improved handling of MVVM with linked dock sites, even allowing the view models to be automatically moved to the target dock site.

SyntaxEditor

Line modification mark tracking logic has been completely rewritten. It now works much better and even introduces new orange marks that track "reverted" changes, similar to how the Visual Studio editor does.

We added the ability for a programmatically created text change to merge into previous text change on the undo stack. This allows you to chain additional text changes onto previous ones and have them be undoable as a single unit.

We added a new property that can be set to false to only allow backspacing over a single character when the document's AutoConvertTabsToSpaces is true.

The PasteDragDrop event is now also raised drag over events so that the drag effects can be manually altered.

The ITextChange.CustomData property is now settable so it can be updated after the text change was created as needed.

SyntaxEditor Web Languages Add-on

A text formatter for the JSON language has been implemented that beautifies the JSON data.

Shared Library

We added the DynamicImage control, which is a drop-in replacement for Image that will auto-grayscale the image content when the control is disabled. Going along with this, we updated ImageConverter to return a DynamicImage instance instead of Image. Our toolbar, menu, and Ribbon control themes have been updated to use DynamicImage so that you get grayscale effects on images out-of-the-box. Note how the cut, copy, and undo buttons are all grayscale when disabled in the screenshot above.

If you encounter a 'Could not find a part of the path' to bitmap image source error after upgrading to this version, specify the absolute path to the image source using pack syntax as described in the DynamicImage documentation instead of using a relative path.

We moved ImageToMonochromeConverter from our Ribbon assembly to Shared and renamed it to ImageSourceContentConverter. Along the way, it was updated to work on vector GeometryDrawings too. We added an attached ImageSourceContentConverter.CanConvertToMonochrome property, which can be set on portions of a DrawingImage that shouldn't be converted to monochrome, such as areas that display a selected color. We also added a ImageSourceContentConverter.Mode property that sets whether to convert to grayscale (default) or monochrome.

Summary

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

Docking/MDI for WPF and UWP has several new options that give you more control over UI appearance. Tab text on tabbed MDI tabs will now trim long text with ellipses in the middle, instead of the end, allowing for filenames to be more readable.

SyntaxEditor's completion and parameter info providers in all language add-ons now allow you to intercept OnSessionOpening, even when no items were pre-populated, so that you can add your own custom items/info. Cut, copy, paste, drag, and drop all now support the block and full line flags that are compatible with Visual Studio. The Python Language Add-on added a text range property to all type and function definitions, allowing you to implement features like go to definition easier.

The Shared Library added a new RingSpinner control that is an animated ring where the two ring segment ends chase each other around the circle. It's great for display while performing a lengthy operation.

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

Universal Controls 2016.1 build 303 has been released and is now available for download. This version adds a beta of our Docking/MDI product, making it possible to include docking tool windows and/or a multiple-document interface in your apps for Universal Windows apps. SyntaxEditor also includes two new Metro-themed image sets that can be used.

The Docking/MDI beta included in this version includes nearly all the docking window functionality found in the WPF version of our Docking/MDI controls. Be sure to check it out and let us know what you think.

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

WPF Controls 2016.1 build 631 has been released and is now available for download. This build contains numerous minor features, updates, and bug fixes across the various WPF control product range.

It is highly recommended that v2016.1 customers upgrade to this build since it fixes all issues that have been discovered in the major Docking/MDI control updates that were part of the first 2016.1 release.

The first 2016.1 release added new Metro themes that have accent colors, like in the screenshot below.

The QAT buttons on the upper left of the window were originally wider in Office 2016, matching the width of the system minimize, maximize, and close title bar buttons. However in the most recent Office 2016 update, the QAT button width was reduced and we've updated their size in this build to match.

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

Quickly Selecting a Tab in the Same Container

Did you know that in the new 2016.1 version of our WPF Control's Docking/MDI product, you can quickly access another docking window tab in the same container by pressing Ctrl+[tabnumber]? This also works in the Docking/MDI beta for Universal Windows.

For instance, in the tabbed MDI screenshot above, if I press Ctrl+2, the Document2.txt document would be selected. And Ctrl+3 would select Document3.txt.

Ctrl+[tabnumber] will select the "normal" tab that has that tab index. What if there are pinned tabs though? Pinned tabs have an unpin button displayed on them and appear first in the tab list. The same concept applies there but you'd press Ctrl+Alt+[tabnumber], where the tab number there is the tab index within the "pinned" tabs.

The same Ctrl+[tabnumber] keyboard shortcut will even work in docked tool windows when two or more tool windows are attached (tabbed) to each other.

Showing the Tool Window Container Options Menu

The Alt+- keyboard shortcut will show the options menu for the current tool window, when the focused tool window is docked in a tool window container.

Showing the Tabbed Document Context Menu

The Alt+- keyboard shortcut will also show a focused document's context menu when in tabbed MDI.

Showing the Tabbed MDI Document List Menu

The Ctrl+Alt+DownArrow keyboard shortcut will display the document list menu in tabbed MDI.

Summary

These keyboard shortcuts are great for end users to be aware of and provide access to common docking functionality, all via the keyboard.