Tweets by @Actipro
Please take some time to learn more about us and our product offerings.
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.
In the last blog post on our TreeListBox control development, we announced that the TreeListBox control was ready for closed alpha testing. TreeListBox is a new control that has much of the same functionality as the tree control found in the Visual Studio Solution Explorer.
In today's post, I'd like to announce a new TreeListView control that is now also ready for alpha testing. The TreeListView control is a multi-column variant of the TreeListBox control that renders similar to a standard ListView but has all the tree and advanced features found in TreeListBox.
The animation above shows several of the features found in this new control such as node expansion, column resizing, column reordering, column header context menus, and more.
Thus far these TreeListView features have been completed:
If you would like to start working with either of the controls and provide us with feedback, please write our support address or chat with us on Slack to sign up for testing. Now is the time to contribute your additional feature ideas and report bugs. Anyone who has a WPF Studio license is fully licensed to use the control in their apps.
In the last blog post on our TreeListBox control development, we talked about new features like async loading and inline editing that were added. In today's post, we'll talk about some more new features and we're also announcing that the alpha test of this control is now ready.
If you would like to start working with the control and provide us with feedback, please write our support address or chat with us on Slack to sign up for testing. Now is the time to contribute your additional feature ideas and report bugs. Anyone who has a WPF Studio license is fully licensed to use the control in their apps.
Since our new post, we've continued to enhance the control and add new features. First, you now can optionally display the root item in the control. When you choose not to do so (the default), the root node's children will be the top-level items.
There is now more control over expandability and when children are queried.
A robust drag and drop system supports dragging to external controls, dragging and dropping on the same control, and dropping from external controls. You have full control over the visual feedback that is provided and what happens when a drop executes.
The control supports data virtualization when virtualized lists of child items are used. With data virtualization, it's possible to support paged retrieval of items as they are requested for display.
A couple new options determine how far items are indented based on their depth.
Thus far these features have been completed (New! marks new features since the last post):
The TreeListBox control is now ready for alpha testing. Please contact us via our ticket system or in Slack to sign up for testing and send in your feedback. We will continue to refine the API based on your feedback before a future final release.
In the last blog post on our TreeListBox control development, we gave a list of features that have been implemented so far and showed a screenshot of sample usage with rendering customization. In today's post, we'll show some more usage scenarios, will request your immediate input for drag/drop, and will give an updated feature list.
First, what's new since the last post? We now have multiple options for governing if and when the determination of expander display is made for a node. This is handy when you want to do minimal data model access checking for children, or when you know for certain that a node never has child nodes.
We now support optional async loading features where you'll be able to utilize a new RingSpinner control (or any other busy indicator) to relay a loading state to the end user. Async loading means that potentially lengthy operations such as file or database access won't block the UI thread when expanding a node.
Here's an example of async loading, where a simulated random delay is invoked when expanding each file folder:
Notice how the UI remains fully responsive even while loading items.
Inline editing is fully supported when enabled. Press F2 or single click on a node's content to enter edit mode where a new text value can be entered. Pressing Enter or losing focus commits the value, while pressing Esc cancels the edit.
An event will fire when an item requests a context menu. Dynamically create the menu for that particular item (or the entire multi-item selection).
Drag and drop is one of the last features we want to get in place before an alpha test version is prepared of the control. This is a complex topic since it involves single/multi-selected items (that could be at various tree depths) being dragged and dropped at other depths, or even dragged externally. Likewise, external items could be dragged onto the control. We want to get your feedback now as we start on drag/drop features to ensure we meet all your needs!
Please either write our support address with your feedback or join our Slack discussion on the topic and chat right with us. The benefit of the chat option is that we are posting screenshots and asking for feature input right during development. It gives you an opportunity to give direct feedback and help guide features.
The TreeListBox control continues to progress well and its feature set is coming right in line with the VS Solution Explorer's tree control's feature set. We look forward to discussing drag/drop feature requirements with you via our ticket system or in Slack!
Last month we posted that we were beginning development of a new TreeView replacement control that addressed the many shortcomings of the native WPF TreeView, and were asking for input at that time. We've been working on this control for both WPF and UWP and have made very good progress.
Thus far these features have been completed:
Here's a screenshot of a recent sample being put together for the control:
In this sample, we have two levels of nodes. The top-most level is folders (whose icons actually toggle with the expand/collapse state), while the inner level has checkboxes and buttons that allow for a dialog to be displayed when clicked for further configuration.
Double-clicking a folder item will toggle its expansion state, while double-clicking a checkable node will toggle its checked state. This sample also shows usage of a DataTemplateSelector to pick which DataTemplate to use for each node.
The control is coming along really nicely and our goal is to match general features found in the VS Solution Explorer. The features above are implemented for both WPF and UWP. We still have more features planned before we open up a beta.
If you have any other suggestions, please either write our support address with your feedback or join our Slack discussion on the topic and chat right with us. The benefit of the chat option is that we are posting screenshots and asking for feature input right during development. It gives you an opportunity to give direct feedback and help guide features.
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.
Do you want to chat with us about what we're working on next? Register to join our Slack team and help guide our future development efforts!
A couple weeks back, we released our first set of Universal Windows controls. And right before that, all the work we've been doing on Docking/MDI for WPF (codenamed vNext) the past few months was released as part of our 2016.1 WPF Controls. Docking/MDI's internals were rewritten from scratch to support all the latest docking window oriented functionality found in apps like Visual Studio 2015 and the feedback on the new version has been tremendous.
Here's the really exciting part for Universal Windows app devs… Part of that vNext rewrite was to also ensure that the same Docking/MDI API and design would work in Universal Windows apps! And today we are formally announcing that we are looking for beta testers to try it out.
This SyntaxEditor and Docking/MDI combination screenshot shows a tabbed MDI and tool windows docked around it:
Are you making a Universal Windows line of business app or any other app that would benefit from docking tool windows and/or a fully-managed tabbed or windows multiple document interface? Then look no further. The Docking/MDI product for Universal Windows has nearly the entire feature set of the amazing WPF version!
If you'd like to help beta test this brand new product for your Universal Windows app, e-mail our support address to request beta access. In your email, please give us an overview of the app you're developing and how you plan to integrate docking windows and/or MDI into it.
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 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!
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.