Tweets by @Actipro
Please take some time to learn more about us and our product offerings.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
Editors also has these other various miscellaneous controls: Calculator, CountryComboBox, CurrencyComboBox, EnumListBox, GradientStopSlider, HsbColorPicker, MonthCalendar, RadialHuePicker, Rating, SaturationBrightnessPicker, and Spinner.
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!
With the 2017.1 version of our WPF Controls about ready for launch, we wanted to release one more 2016.1 maintenance release of the controls. This maintenance release has many minor updates and bug fixes.
Some notable new features include improving the speed of SyntaxEditor text formatters for numerous languages and allowing the Ribbon Backstage "close" button to be hidden, which is applicable for app startup usage scenarios. The full update details are contained in this forum thread.
Look for v2017.1 to roll out in the next few days!
We're very excited to be a Visual Studio 2017 launch partner. To celebrate, we want to help you get started building some great Windows Store apps with our Universal Windows UI control products.
Our user interface control products offer features you won't find anywhere else. All of our more recent control products have been designed with codebases that are shared as much as possible between WPF and Universal Windows. This makes it easy to share code and technical know-how when you have Actipro controls in applications using each platform.
Here's the offer:
Buy licenses for qualifying Actipro WPF UI control products and get the related UWP control product licenses for free, including free subscriptions!
Buy licenses for qualifying Actipro WPF UI control products and get the related UWP control product licenses for free, including free subscriptions!
As an example, this means that if you would like to buy our WPF SyntaxEditor control with its .NET Languages Add-on, follow the steps on the Offer Details page and we'll add the Universal Windows versions to your account with the same subscription period as your related WPF subscription. All for free!
We don't want to leave our valued existing customers out in the cold. If you have an active WPF controls subscription for a qualifying product, you also can follow the steps on the Offer Details page to receive your free controls too!
We are doing final testing on the 2017.1 versions of our products now and they will be launching soon. Our 2017.1 WPF controls have new Editors that are based on the work we did when building the UWP Editors. We've implemented many new features, made them more lightweight, and added new editors too. The 2017.1 version also officially launches our new Grids product, which includes a rewritten PropertyGrid control that is much faster than the old version and easier to use and customize. Grids also has brand new tree controls, including a TreeListBox and TreeListView. Best of all, these controls will be launching on UWP in our 2017.1 release of the UWP Controls too.
This offer is only good through July 7, 2017, so act fast by following the directions on our Offer Details page. Please contact our sales team if you have any questions!
Hey everyone, we've been working very diligently on the 2017.1 version of our WPF controls for the past several months and a public beta is almost ready. We'd love as many customers as possible to participate in the beta. First, let's give an overview of what's new in the 2017.1 version.
In the 2017.1 version, we reimplemented all Editors controls to be faster and more lightweight in terms of elements/bindings, and to use a common codebase with the Universal Windows Editors product. The new designs are better optimized for use in large quantities such as within data grids or property grids.
Every new edit box control has more fine-grained control over the step values. Now a native TextBox control is used for input, which allows for more free-form editing, IME input, and better UIA support.
New and improved drop-down pickers have been designed for each edit box. The pickers are optimized for mouse, pen, and touch-based entry. The screenshot above shows the BrushEditBox and the new BrushPicker drop-down control. Altering any edit box's drop-down is simply a matter of providing an alternate Style for its picker control.
New edit boxes have been added for the Byte, Int16, and Single numeric types, along with dedicated date-only (DateEditBox) and time-only (TimeEditBox seen above) variations of DateTimeEditBox.
Our customers have requested custom tree controls from us for a while now and we delivered in this version. We now offer a new TreeListBox control that is a single column tree similar to a native TreeView but optimized for MVVM usage, virtualization, and speed. It supports nearly all of the advanced features you'll find in a tree control like the Visual Studio Solution Explorer tree.
We also offer a new TreeListView control that is built upon the TreeListBox control but displays multiple columns similar to a ListView. Each column supports its own distinct user interface via data templates.
Both of these controls are packaged in a new Grids product.
While the PropertyGrid control found in our 2016.1 and earlier versions was very feature-rich, its performance sometimes left much to be desired and customization via property editors wasn't very straightforward.
In the 2017.1 version, PropertyGrid has been rewritten from scratch and constructed around the foundation provided by the new TreeListBox and TreeListView controls. It's now lightning fast and loads complex objects (like the properties of itself) almost instantly. A lot of this is due to simplification of the internal object model, use of virtualization techniques, and fewer overall UI elements. You'll definitely notice the speed increase.
The core object model used to track properties and categories has been improved and creating custom property editors is much more straightforward now.
The new PropertyGrid is part of the Grids product as well.
If you'd like to help us beta test the product, please write our support address and let us know your existing 2016.1 license information. We will notify you as soon as the public beta is ready and will send you a 2017.1 license if your subscription is still active.
The code for the beta is near complete and should be pretty stable. We have a full array of samples and documentation has been completely updated, including conversion notes.
We also will be chatting about the beta in our Slack channels so please join if you have Slack.
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:
<Style TargetType="docking:StandardMdiWindowControl"> <Setter Property="Opacity" Value="0" /> <Setter Property="RenderTransformOrigin" Value="0.5,0.5" /> <Setter Property="RenderTransform"> <Setter.Value> <ScaleTransform ScaleX="0.8" ScaleY="0.8" /> </Setter.Value> </Setter> <Style.Triggers> <EventTrigger RoutedEvent="docking:StandardMdiWindowControl.Loaded"> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.2" /> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.(ScaleTransform.ScaleX)" To="1" Duration="0:0:0.2"> <DoubleAnimation.EasingFunction> <BackEase EasingMode="EaseOut" /> </DoubleAnimation.EasingFunction> </DoubleAnimation> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.(ScaleTransform.ScaleY)" To="1" Duration="0:0:0.2"> <DoubleAnimation.EasingFunction> <BackEase EasingMode="EaseOut" /> </DoubleAnimation.EasingFunction> </DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger> </Style.Triggers></Style>
Download our WPF Controls and give it a try!
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.
Everyone, please have a wonderful holiday season and happy new year!
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:
In this quarter, we published new maintenance releases of our WPF, UWP, and Silverlight control products. SyntaxEditor received numerous updates like a much-improved system for tracking line modification marks that works just like Visual Studio's (including showing reverted changes), a JSON text formatter, ability to merge new text changes into previous ones, and more. Docking/MDI received many new features and bug fixes and the new build is a recommended update if you using the 2016.1 version. The Shared Library added support for grayscale images on disabled controls. But most importantly, we added an alpha build of our upcoming Grids product containing previews of our TreeListBox and TreeListView controls. We've discussed these in several blog posts around the middle of the year.
The past couple months we've focused on finalizing the TreeListBox and TreeListView controls and have been busy reimplementing our PropertyGrid control to be based on TreeListView. That work is mostly completed at this point. The new PropertyGrid we're making harnesses virtualization and is lightning fast. It's also extremely customizable, making it easier than ever to make custom property value editors or even control which properties show up in the PropertyGrid. We will be officially launching this new PropertyGrid control in a Grids product with the TreeListBox/TreeListView controls in early 2017 but might post a preview build of the new PropertyGrid in late 2016.
We also have been working on backporting our UWP Editors product to WPF. The editors found in that newer design are a bit simpler in nature (much lighter-weight in terms of UI elements) and very performant, while still providing the best features found in the current WPF Editors. We are preparing these new and updated Editors to also launch in early 2017, alongside the new Grids product. They will be ready for easy usage within the new PropertyGrid as well.
If you have any interest in helping test some of these new controls, please write our support address or sign up for our Slack team.
The most recent 2016.1 release of our WPF Controls added a new DynamicImage control. This is a drop-in replacement for Image that will auto-grayscale the image content when the control is disabled.
Ribbon buttons have all been updated to automatically grayscale their images when they are disabled.
The left ribbon has enabled buttons and the right ribbon has several disabled buttons
ToolBar buttons (if our native control themes are applied) have also all been updated to automatically grayscale their images when they are disabled.
The left toolbar has enabled buttons and the right toolbar has several disabled buttons
In the past, the above disabled buttons would show their images with some transparency but would retain the color. Having images auto-switch to grayscale ensures that they truly reflect a disabled state.
These features are in the latest 2016.1 maintenance release, available now.
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!