Tweets by @Actipro
Please take some time to learn more about us and our product offerings.
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.
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!
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.
A new property is available to prevent floating dock hosts that contain MDI from showing in the Windows taskbar. (WPF only)
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.
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.
Improved Int32EditBox to support hexadecimal formats.
Improved GuidEditBox to support multiple formats.
Added UI automation peers for numerous controls.
The MaskedTextBox control added a default context menu and the gradient brush editor added a Remove Stop button.
The TreeListBox control and its derivatives added a powerful data filtering mechanism that uses string, boolean, and predicate-based logic to filter items.
A new sample that demonstrates filtering was also added.
Added the ZoomLevelIncrement property that controls the mouse wheel zoom step amount.
Added several UI automation peers for internal SyntaxEditor components.
Improved the IntelliPrompt completion list to try and keep the item matched by typing scrolled to the middle.
Added a UI automation peer for the RadialSlider control.
Updated the RadialSlider control to support more keyboard shortcuts.
All products received numerous other minor enhancements and bug fixes. See the announcement posts for the detailed list of enhancements and updates:
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.
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:
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.
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!
Very large maintenance releases of our v2016.1 WPF, Universal Windows, and Silverlight controls have been released and are now available for download.
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.
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:
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.
A text formatter for the JSON language has been implemented that beautifies the JSON data.
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.
Maintenance releases of our v2016.1 WPF, Universal Windows, and Silverlight controls have been released and are now available for download.
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.
The 2016.1 version of our Silverlight controls has been released and is now available for download.
This version contains several updates to SyntaxEditor and its add-ons. See the announcement post for details.
New maintenances of our WPF, Silverlight, and WinRT/XAML controls have been released and are now available for download.
These releases mostly focus on minor feature additions and bug fixes as we prepare to start work on our 2016.1 versions. See these announcement posts for the detailed list of enhancements and updates:
New maintenances of our WPF, Silverlight, WinRT/XAML and WinForms controls have been released and are now available for download.
These releases mostly focus on minor feature additions and bug fixes. See these announcement posts for the detailed list of enhancements and updates:
The 2015.1 versions of our WPF, Silverlight, and WinRT/XAML controls were released a couple weeks ago and in today's post I'd like to highlight one of the great new controls that were introduced in that version: TaskBoard.
A task board consists of zero to many columns, each of which can contain zero to many cards. Columns and cards can be dragged and reordered, using pleasing animations. Let's see an example to give you a picture of how it all works.
In the demo below, we have a TaskBoard control that is being utilized for a task planning system, commonly used in project management to help organize the priorities of a team. The columns represent task groupings, and the cards represent individual tasks. Each column has a header and optional footer that surrounds the contained card items.
In this sample, each column header specifies the task grouping name and the column footer contains an "Add a task" button. The footer of the overall TaskBoard control contains an "Add a list" button, which shows at the end of the list of columns.
The entire UI of the task board can be fully customized. The cards can show any custom content as well, or can vary content based on data template selectors.
The TaskBoard control is designed for MVVM usage and makes it easy to fully alter the appearance of the entire layout with properties for column/card spacing, padding, corner radius, etc. Best of all, rich animations are used whenever dragging columns or cards.
TaskBoard also works great with touch input. Use it to create task planning systems on large touchscreen displays.
The full source TaskBoard demo seen above is included in the sample projects that ship with our WPF, Silverlight, and WinRT/XAML controls, and is available for you to check out today.
Let us know what you think after you try it!
In today's post, we'll show the optional Find All button that was recently added to the SyntaxEditor (WPF, Silverlight, and WinRT/XAML platforms) EditorSearchView control.
SyntaxEditor has always had the ability to perform "find all" searches programmatically, however we received feedback from numerous customers looking to add this to our EditorSearchView control so that their end users could also access it.
The EditorSearchView control seen above shows the new Find All button visible. Note that it is not visible by default (the new EditorSearchView.IsFindAllButtonVisible property defaults to false) since unlike the other find and replace operations, there is no automatic UI change in the editor itself for a find all operation. Instead, you need to display the results somehow, such as in a find results list.
This screenshot shows an example find results list. The full source code for this sort of setup is included in the samples that come with SyntaxEditor.
Providing the ability for your app's end users to find all instances of search text is certainly a handy addition.
The features described above are available in our latest WPF, Silverlight, and WinRT/XAML control versions and are available for use.
In today's post I'd like to show a new feature that was recently added to SyntaxEditor (WPF, Silverlight, and WinRT/XAML platforms): move selected lines up or down.
Moving a range of selected lines from one place to another is a very common task in any text editor. Of course this can be accomplished by cutting and pasting the selection around. But for small adjustments to the location of several lines, the ability to simply move the lines is a valued feature.
We've added the ability to move selected lines up and down via the Alt+Up and Alt+Down keys respectively. Let's see a couple examples of it in action.
In this sample, I selected the lines that contain the AnotherMethod method. Then I pressed Alt+Up several times to move the method above the Bar method. I then pressed Alt+Down to move the lines back down to their original position.
In this second sample, I had a comment that wasn't in the right place and I wanted to move it up. I just put the caret on the line and pressed Alt+Up a couple times to move it back to the right spot above the color property declaration.
The ability to move selected lines up and down is a real productivity enhancer when doing text editing.