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!
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.
We're pleased to announce that our Universal Windows controls have officially been released and are ready for use in your Windows 10 apps! Download a free evaluation today and start building your apps with them.
Let's take a quick glimpse at some of the samples that ship with the product and show off the controls:
The focus of this first release was to port our older WinRT XAML controls up to the Universal Windows platform. Look for plenty more updates and controls added in the future.
The 2015.1 versions of our WPF, Silverlight, and WinRT/XAML controls have been released and are now available for download.
Major new features are described below. See the announcement posts for the large detailed list of enhancements and updates, including many items not listed below:
Our Bar Codes product has been ported to the WinRT XAML platform. This product, which already exists on WPF and Silverlight, allows your apps to render vector-based bar codes using many common 2D and linear bar code symbologies.
A full set of demos and QuickStarts are included to help you get going.
The interop assembly that makes it easy to use Docking/MDI with the Prism framework has been updated to reference the latest Prism v5.0.
We've made numerous layout and performance updates to further improve the product.
We also have been working hard on building a completely new internal engine for the Docking/MDI product, which will be available sometime later this year. Keep an eye on our blog for posts detailing the advanced features that are coming with those updates.
All of our edit box controls in the WinRT Editors now have an IsEditable property. When set to false, the edit box behaves more like a ComboBox, while still retaining the rich popups that make the editors unique. This is an ideal option for apps whose primary mode of interaction is expected to be touch.
The CornerRadiusEditBox, PointEditBox, RectEditBox, SizeEditBox, and ThicknessEditBox controls have been updated to support text parsing one and/or two number entries where appropriate, which is useful for easy uniform value entry.
In the above ThicknessEditBox, a 2 is typed and then Enter is pressed. The value is converted to a uniform thickness of 2.
A ValueChanged event has been added to all edit boxes, which fires when a value change is committed.
Finally, edit box padding has been adjusted so that more content is visible in the same amount of space.
A new DigitalGauge.CharacterSegmentThickness property allows for segment thickness adjustments. This gives you even finer control over the presentation of your digital characters.
We've enhanced the 'Linear Gauge Rolling Scale' QuickStart with a new infinite rolling scale example for navigation headings.
The EditorSearchView control now supports an optional "Find All" button.
The RTF export logic has been updated to support extended ASCII characters.
The free CSS language definition now supports the syntax highlighting of media queries.
We've dramatically improved the speed of large completion list display.
Several other performance improvements have been made, such as optimized the scenarios for which the TokenTagger raises its TagsChanged event, and refining of the automatic outlining update logic.
In the WinRT version, we added the SyntaxEditor.AreSelectionGrippersEnabled property, which determines whether the selection grippers show after touch within a view.
The C# parser has been improved to recover better when encountering open block statements so that its AST node structure remains better in tact.
The IntelliPrompt quick info for properties now includes accessors, making it possible to see whether a property is read-only.
The Python language has received an enormous amount of updates, that in sum really improve the entire automated IntelliPrompt feature set.
Check out all these enhancements:
The Views product has a new TaskBoard control added, available in all three (WPF, Silverlight, and WinRT) platforms. TaskBoard can be used to create a board of reorderable columns and cards. All of the drags use smooth animations to give you the feel that you are really interacting with the object.
The first full-source sample that comes with the control is a Repair Shop Scheduling demo, which shows how a TaskBoard can be used to interactively schedule work to resources, such as employees. TaskBoard excels at providing a visual way of representing work/tasks (displayed as cards) within a queue of some sort (displayed as a column).
The second sample is a Task Planning demo, which shows how a TaskBoard can visually organize a project's tasks.
We've added another new primitive SemiEllipse shape, which renders half of an ellipse.
The existing Triangle shape has a new IsClosed property that when set to false will create a triangle with only two of the sides rendered.
Finally, in the WPF Shared Library, we added GradientBrushSlider.CanAddStops and CanRemoveStops properties that determine whether stops can be added and removed from a GradientBrushSlider.
New maintenance of the 2014.2 versions of our WPF, Silverlight, and WinRT/XAML controls have been released and are now available for download.
Major new features are described below. See the announcement posts for the detailed list of enhancements and updates, including many items not listed below:
The Country class, which contains ISO country data and is utilized by our CountryComboBox control, now also includes the 3-character alpha code data for each country.
This is in addition to the existing data of 2-character alpha code and name.
We've improved how the PropertyGrid handles properties on the root SelectedObjects that have a custom type converter.
We've also improved support for handling immutable objects and determining how to interact with their properties.
The Custom Factory sample has been updated to show a property with a non-string type.
This is a great example of showing how to implement a custom data factory and merge properties from various object sources.
We've improved keyboard navigation in the TaskTabControl control, which is generally used within Backstage tabs.
The logic for the sizing of contextual tab groups and their tabs always has had some minor issues when resizing the containing window to be thinner. The issue didn't often manifest itself unless multiple contextual tab groups were displayed.
We spent a while tracking these issues down and fixing them so that all layout sizing is now perfect, as seen in the screenshot above.
We've added support for read-only regions of text via the new IReadOnlyRegionTag tag. This feature has been highly requested by customers, so we're happy to deliver it.
There is a ReadOnlyRegionTag implementation class that supports classification so that read-only regions can be rendered with an alternate background, such as gray in the screenshot above. A new Read-Only Regions QuickStart that demos the new features is now in the Sample Browser.
Another highly-requested set of commands for moving the selected lines up (via Alt+Up) and down (via Alt+Down) have been added. The SDI Editor demo's menu has been updated to show off the new editor commands.
We did a lot of performance profiling related to IntelliPrompt completion lists and we able to make numerous performance enhancements in the areas of item matching and filtering. These enhancements will really help performance when displaying large completion lists.
A SyntaxEditor.IsDragDropTextReselectEnabled property has been added that can be set to false to prevent reselection of dropped text.
Views have been updated so that text changes from a data bound source (such as view model) don't scroll the view back to the first line on each update.
The line commenter has been updated to improve how line comment and uncomment features affect selection. The logic that gets activated by the LineBasedLineCommenter.CanCommentEmptyLines property also has been improved.
We've made several improvements to caret movement when editing bi-directional text.
All of the event ties between the UI and document models have been changed to use weak events.
The ability to resolve references to nested types has been improved.
A completion item for closing the nearest open ancestor element, if any, has been added. (WPF only)
Ctrl+Space after an end tag start delimiter will also auto-complete the matching start tag's name. (WPF only)
We've also improved the editing experience when typing to not affect outlining nodes as much.
New primitive shapes have been added that can be used to create some interesting user interface elements in your apps. The Wave shape renders a wavy line. The ZigZag shape renders a zig-zag line.The Shapes QuickStart has been updated with examples showing usage of the new shapes.
In recent posts, we've shown off some of our new edit box controls for WinRT (Windows Store and Windows Phone apps). We saw our DateEditBox, which is used for date input. And then we saw our TimeEditBox, which is used for time input. We also have a DateTimeEditBox, which can edit a date and time in the same control. That's what we'll show in today's post.
The DateTimeEditBox control is used to input a DateTime value, and uses a DateTimePicker control in its popup.
Edit boxes work great with a keyboard. When the edit box is focused, values can be directly typed in. Type in "9/9/14 10am", "09/09/2014 10:00", "2014-09-09 10AM", etc. and press Enter. Any of those will commit the same date/time value. You can also move the caret to one of the date/time components (month, day, year, hour, minute, second, AM/PM) and use keyboard arrow keys, PgUp/PgDn, or the mouse wheel to increment values. Best of all, pressing the left/right arrow keys will instantly jump between the various "parts" (components) of the edit box value and select the part's text.
The date/time value can be displayed in any desired standard or custom format. By default it will use the current culture's default date/time format.
If the user doesn't have a keyboard, mouse or touch can be used to display the popup. The popup contains a HorizontalListBox at the top that switches between DatePicker and TimePicker controls. These two pickers allow for easy mouse/touch selection of dates and times.
Most competitors have either made date and time pickers that show a large Windows Phone-like spinning selectors, or have gone with the multiple ComboBox approach like these native WinRT DatePicker and TimePicker controls do:
Neither of those control types are ideal for WinRT apps that can potentially be run on large desktops with keyboards. Compare the usability of the above to our single control:
Just like our other edit boxes, this edit box will render itself like a button when used on Windows Phone. Tapping the button shows a full screen picker (same as above) where the date value can be selected.
This post shows how an DateTimeEditBox control can accept date and time input in a single control within a Windows Store or Windows Phone app. Download our WinRT/XAML Controls to check it out, along with our other beautiful and functional editor controls!
The 2014.4 versions of our WPF, Silverlight, and WinRT/XAML controls have been released and are now available for download.
Note that the 2014.2 version of the WinRT/XAML controls came out last month, introducing our Editors controls, but a new maintenance release is available today adding other new features.
We've added six new built-in chart palette options, including Retro and Sand:
Docking/MDI received numerous updates, including a new option for rafting windows to not hide when in scenario where their owner DockSite is hidden, such as if it's nested in tabs itself. Many updates to focus handling were made, especially in relation to interop controls like WinForms/ActiveX.
Updated the Country and Currency classes with the latest ISO data.
As announced in recent blog posts, our WinRT/XAML controls now have some really unique and universal (Windows Store / Windows Phone) controls for accepting input of common data types.
See our Edit Boxes Overview for a summary of the controls and some links to additional posts describing their functionality.
A new segment chart has been added that allows for visual display of an integer value within a total..
This sort of chart is great for use on dashboards, and also as an indicator of steps or progress achieved.
Another new control is the arrow indicator displayed on the left side of the stock chart below. It's called a trend indicator and alters its UI to reflect whether a numeric value is greater than, the same as, or less than an origin value.
Six new built-in chart palettes have been added as well, including IceCream and Melon.
We've created a new custom property editor sample that shows how to easily add a custom property editor for a certain Type.
Double-clicking a property name has been improved such that if the property doesn't support standard values, it will attempt to focus the related editor instead and select all text.
We've added some nice new features like a ScrollIntoView method that can ensure that a text position is visible within the view, improved caret/selection movement around and delete/backspace of multi-byte characters, and improved backspace to move to the previous tab stop when auto-convert tabs to spaces is active and the caret is before the first non-whitespace character on the line.
We've had a lot of requests for showing how to support ASP-style server tags, where the C# within the tags has automated IntelliPrompt.
We're happy to deliver a new full source sample (seen above) that shows how to harness our .NET Languages Add-on within server tags.
Today's releases contain the first version of our Python Language Add-on, a new premium add-on that supports both v2.x and v3.x syntax.
We'll blog about the language in more detail soon, but you can download and start using it today.
A new triangle shape can be used in UI such as breadcrumbs, tabs, etc.
This shape can auto-size to its container and supports strokes and fills.
We've added a ZoomLevelToTextFormattingModeConverter class, which can switch from Display to Ideal text formatting mode when the zoom level is increased, thereby keeping text clear in any scenario.
In the recent posts, we have seen color, enumeration, and date edit boxes, which are all part of the new WinRT/XAML Editors product. In today's post, we'll take a look at the TimeEditBox controls, which make it easy to select a time value.
The TimeEditBox control is used to input a DateTime value, and uses a TimePicker control in its popup.
Edit boxes work great with a keyboard. When the edit box is focused, values can be directly typed in. Type in "10am", "10:00", "10:00 AM", etc. and press Enter. Any of those will commit the same time value. You can also move the caret to one of the time components (hour, minute, second, AM/PM) and use keyboard arrow keys, PgUp/PgDn, or the mouse wheel to increment values. Best of all, pressing the left/right arrow keys will instantly jump between the various "parts" (components) of the edit box value and select the part's text.
The time value can be displayed in any desired standard or custom format. By default it will use the current culture's default time format.
If the user doesn't have a keyboard, mouse or touch can be used to display the popup. The popup contains a TimePicker control, which uses an analog clock-like user interface. It is comprised of two radial sliders. The inner slider alters the hour (spin clockwise one cycle to get to PM hours) and the outer slider alters the minute.
As shown in the previous post related to date editing, most competitors have either made date/time pickers that show a large Windows Phone-like spinning selector, or have gone with the multiple ComboBox approach like the native WinRT TimePicker control does:
Neither of those control types are ideal for WinRT apps that can potentially be run on large desktops with keyboards. Compare the design to ours:
Not only does our TimeEditBox use less overall space and reduce UI clutter, it is also super efficient when combined with a keyboard.
This post shows how an TimeEditBox control can make it simple for an end user to select a time value within a Windows Store or Windows Phone app. Download our WinRT/XAML Controls to check it out, along with our other beautiful and functional editor controls!
In the last post of this series, we introduced the ColorEditBox control, which is part of the new WinRT/XAML Editors product. In today's post, we'll take a look at the EnumEditBox control, which makes it easy to select enumeration values.
The EnumEditBox control is used to input an Enum value, and uses an EnumPicker control in its popup.
The screenshot above shows off how the popup renders a flags-based enumeration, where multiple selections can be made. For non-flags enumerations, the popup looks more like a standard single-selection list:
It's very easy to get going with the control. Simply set the enumeration type and bind a value and it takes care of the rest for you.
Edit boxes work great with a keyboard. When the edit box is focused, values can be directly typed in. Type in "Three" and press Enter. The value will get committed. You can also use keyboard arrow keys, PgUp/PgDn, or the mouse wheel to increment values.
If the user doesn't have a keyboard, mouse or touch can be used to display the popup. The picker on the popup uses large items, making for easy mouse/touch selection.
Anther great feature of the control is the ability to use DisplayAttribute attributes on the enumeration values to specify alternate display text for each enum value. Custom value sorting algorithms can be set as well.
Just like our other edit boxes, this edit box will render itself like a button when used on Windows Phone. Tapping the button shows a full screen picker (same as above) where the enum values can be selected.
This post shows how an EnumEditBox control can make it simple for an end user to select an enumeration value within a Windows Store or Windows Phone app. Download our WinRT/XAML Controls to check it out, along with our other beautiful and functional editor controls!
In the last post, we gave an overview of the new edit box controls that were just released in our WinRT/XAML Editors product, including a list of some options that are available in all edit boxes. In today's post, we're going to take a look at a universal edit box control that is used to select a color value.
The ColorEditBox control is used to input a Color value, and uses a ColorPicker control in its popup.
The alpha component of the color can optionally be included. When the alpha component is not enabled, an opaque color is required and only RGB edit boxes appear on the popup, instead of ARGB.
Edit boxes work great with a keyboard. When the edit box is focused, values can be directly typed in. Type in "Red", "#f00", or "#ff0000" and press Enter. Any of those will commit a red color value. You can also move the caret to one of the ARGB components and use keyboard arrow keys, PgUp/PgDn, or the mouse wheel to increment values.
If the user doesn't have a keyboard, mouse or touch can be used to display the popup. Just drag the sliders to select a different color. Or edit the ARGB component values directly to set exact values.
All of our WinRT/XAML controls are universal and support both Windows Store and Windows Phone apps. In the case of edit boxes, they often have a different UI that has been tailored specifically for Windows Phone.
Above we see how a ColorEditBox renders on a phone. Since phones don't have hardware keyboards, the control has been crafted to look like a native ComboBox, although we also support an optional clear button. Then rest of the control behaves like a button. When the button is tapped, this full screen dialog is displayed:
Everything on the picker popup displayed here is big and touch friendly… a perfect design for color selection on Windows Phone.
This post shows how a ColorEditBox control can make it simple for an end user to select a color within a Windows Store or Windows Phone app. Download our WinRT/XAML Controls to check it out, along with our other beautiful and functional editor controls!