The Actipro Blog

All the latest UI control development news from Actipro

TreeListBox - New Features and Ready for Alpha Testing

PostBannerWPFControlsDevNotes

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.

New Features

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.

Feature Progress

Thus far these features have been completed (New! marks new features since the last post):

  • Fully customize the appearance of each node.
  • UI virtualization, allowing for hundreds of thousands of nodes to be loaded into a tree very quickly.
  • No scrollbar jumpiness as seen in other virtualized tree controls when scrolling vertically.
  • Use your own custom data models as the source for the tree, with no dependencies on UI or our interfaces. An adapter class is used (and can be fully customized to fit your model) to communicate between the UI and the model for things like expansion state, getting children, etc.
  • The adapter can be coded with bindings in XAML (convenient, yet can be slow in very large trees) or via method overrides (slightly more work but lightning fast).
  • New! Optionally show the root item in the control.
  • New! Fine-grained control over expandability and children query triggers.
  • Optional async loading with busy indicator display.
  • Events for expansion.
  • Events for selection.
  • Single or multi-selection, with Ctrl and Shift-based selection options.
  • Filter selection such as only allowing sibling nodes to be multi-selected, or nodes of the same depth.
  • All common tree hotkeys supported including special ones for expanding and collapsing entire branches.
  • Select or ensure nodes are visible by path.
  • Double-click and Return key default action handling.
  • Optional checkboxes within the data templates.
  • Intelligent text searching so when you start typing while the control has focus, it will auto-focus the item that matches the typed text.
  • Inline editing via F2 and single-click on a selected item.
  • Per-item context menus that can be constructed dynamically via an event.
  • New! Drag items to external controls, drop data from external controls, or drag/drop items within the control itself.
  • New! Dragged items can highlight above, on, and below drop areas for each item.
  • New! Single and multiple item dragging is supported.
  • New! Optional data virtualization optimization when using virtualized collections.
  • New! Indentation of top-level and other nodes can be set independently.

Summary

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.

TaskWideContactUs TaskWideChatWithUs

TreeListBox - Async Expansion, Inline Editing, and More

PostBannerWPFControlsDevNotes

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.

New Features

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:

TreeListBoxAsyncLoading

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/Drop Feature Feedback Requested

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.

Feature Progress

Thus far these features have been completed (New! marks new features since the last post):

  • Fully customize the appearance of each node.
  • UI virtualization, allowing for hundreds of thousands of nodes to be loaded into a tree very quickly.
  • No scrollbar jumpiness as seen in other virtualized tree controls when scrolling vertically.
  • Use your own custom data models as the source for the tree, with no dependencies on UI or our interfaces.  An adapter class is used (and can be fully customized to fit your model) to communicate between the UI and the model for things like expansion state, getting children, etc.
  • The adapter can be coded with bindings in XAML (convenient, yet can be slow in very large trees) or via method overrides (slightly more work but lightning fast).
  • New! Multiple display modes for node expanders.
  • New! Optional async loading with busy indicator display.
  • Events for expansion.
  • Events for selection.
  • Single or multi-selection, with Ctrl and Shift-based selection options.
  • Filter selection such as only allowing sibling nodes to be multi-selected, or nodes of the same depth.
  • All common tree hotkeys supported including special ones for expanding and collapsing entire branches.
  • Select or ensure nodes are visible by path.
  • Double-click and Return key default action handling.
  • Optional checkboxes within the data templates.
  • Intelligent text searching so when you start typing while the control has focus, it will auto-focus the item that matches the typed text.
  • New! Inline editing via F2 and single-click on a selected item.
  • New! Per-item context menus that can be constructed dynamically via an event.

Summary

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!

TaskWideContactUs TaskWideChatWithUs

TreeListBox - Progress and Checkable Nodes Sample

PostBannerWPFControlsDevNotes

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.

Feature Progress

Thus far these features have been completed:

  • Fully customize the appearance of each node.
  • UI virtualization, allowing for hundreds of thousands of nodes to be loaded into a tree very quickly.
  • No scrollbar jumpiness as seen in other virtualized tree controls when scrolling vertically.
  • Use your own custom data models as the source for the tree, with no dependencies on UI or our interfaces.  An adapter class is used (and can be fully customized to fit your model) to communicate between the UI and the model for things like expansion state, getting children, etc.
  • The adapter can be coded with bindings in XAML (convenient, yet can be slow in very large trees) or via method overrides (slightly more work but lightning fast).
  • Events for expansion.
  • Events for selection.
  • Single or multi-selection, with Ctrl and Shift-based selection options.
  • Filter selection such as only allowing sibling nodes to be multi-selected, or nodes of the same depth.
  • All common tree hotkeys supported including special ones for expanding and collapsing entire branches.
  • Select or ensure nodes are visible by path.
  • Double-click and Return key default action handling.
  • Optional checkboxes within the data templates.
  • Intelligent text searching so when you start typing while the control has focus, it will auto-focus the item that matches the typed text.

Sample Usage

Here's a screenshot of a recent sample being put together for the control:

TreeListBoxChecking

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.

Summary

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.

TaskWideContactUs TaskWideChatWithUs

Creating an Improved WPF TreeView Control

PostBannerWPFControlsDevNotes

Anyone who has worked with the native WPF TreeView knows that its API is difficult to use (compared to the WinForms TreeView) and the performance isn't very good when binding to large large data sets.

We have started developing a completely custom implementation of a TreeView control that isn't based on the native TreeView control.  We'd love to get your input now during our design and prototyping phase on the following items:

  • What are the top 5 built-in features you would like to see implemented in a TreeView?
  • What specific pain points have you encountered with the native WPF TreeView?
  • What features/API would help resolve those pain points?
  • Any other features/functionality you think we should consider?

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 you can see what others are saying and throw in your two cents as well.

TaskWideContactUs TaskWideChatWithUs

Tags:

Docking/MDI for Universal Windows Beta

UniversalDevBlogPostBanner

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:

UniversalDocking

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!

Write Us to Beta Test

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.

WPF WindowChrome Title Bar Button Updates

PostBannerWPFControlsDevNotes

While the final testing of our major Docking/MDI vNext enhancements is ongoing (the result of which will be in the WPF Controls 2016.1 release), we're also working on other new features for the 2016.1 release.  Part of these updates will be some adjustments to themes.

For some quick background, our WindowChrome class can be attached to any WPF Window to custom render its chrome, using the Actipro Themes.  In the most recent 2015.1 build, we updated the WindowChrome outer shadow to render similar to other Windows 10 apps so that it fits right in with Windows 10.

For our upcoming 2016.1 version, we are making more adjustments.  Title bar buttons in the Metro themes are now the standard size found in other Windows 10 apps, which are much more touch friendly since they are significantly larger than before.  We also have updated the Close button to use red highlights on hover (see screenshot below) and press, similar to Windows 10 buttons.

TitleBarButtons1

The new 2016.1 appearance of Metro themed title bar buttons

In 2016.1, the title bar buttons have the fresh new crisp glyphs that match Windows 10 as well.  Compare the title bar buttons in the above screenshot to the buttons in the same app in our 2015.1 version:

TitleBarButtons2

The 2015.1 appearance of Metro themed title bar buttons

Summary

These sort of UI enhancements to our Metro themes are subtle, yet they really help your app's visual cohesiveness with Windows 10.

The features described above will be available in the 2016.1 version of our WPF controls.

TaskDownload TaskLiveDemo TaskBuyNow

Tags: ,
Filed under: Actipro, In development, WPF

Actipro Universal Windows Controls Ready for Beta Testing

PostBannerUniversalWindowsControlsDevNotes

Alongside the development of Docking/MDI vNext for WPF, we have been working on porting our WinRT/XAML Controls to the Universal Windows Platform (UWP).  This is a full port of our existing controls available for the WinRT/XAML platform, but made for UWP and Windows 10 app development.

UniversalWindowsControls

We are currently looking for beta testers for these controls.  If you would like to participate in beta testing, please contact our support address.

Tags:

Docking/MDI vNext - Testers Wanted for 2016.1 Preview

PostBannerWPFControlsDevNotes

We've spent the last several months working intensely on completely rebuilding the internals of our market-leading WPF Docking/MDI product.  This project is called "Docking/MDI vNext" and keeps the same general API surface, while providing even more advanced features in every area of the product, evolving it into a true best-of-breed docking tool window and MDI functionality solution.

Project Status

Great news… after several months of development and testing, Docking/MDI vNext is now out of beta and considered complete!  Check out our recent blog posts to see a list of several of the major features that are included in this new version.

Docking20161

The updates we made will be released as part of our WPF Controls 2016.1 offering that will likely officially roll out live in January or early February.  We'll have a full summary of the new features on the blog then.

Looking for 2016.1 Preview Testers

If you would like to get a preview build of 2016.1 and start working with everything now, please write our support address.  The major Docking/MDI vNext updates are considered code complete and stable at this point.  We have new and updated samples and documentation, updated Prism 6.1 compatibility, and a lot more.  The documentation gives detail on all new features and any breaking changes you might encounter.  We'd love to get some more users including it their apps and giving us some final feedback before a public release.

Tags: ,

Docking/MDI vNext - Beta Testing Going Well

PostBannerWPFControlsDevNotes

We've spent the last several months working intensely on completely rebuilding the internals of our market-leading WPF Docking/MDI product.  This project is called "Docking/MDI vNext" and keeps the same general API surface, while providing even more advanced features in every area of the product, evolving it into a true best-of-breed docking tool window and MDI functionality solution.

Beta Testing Progress

A couple weeks ago we began the beta testing process for Docking/MDI vNext and thus far, it's been going very well.  The product has proven to be very stable and only a handful of minor tweaks and adjustments have been needed.  At this point, the product is considered feature-complete for its first shipping version.

We've been spending time during this beta testing period improving some samples and adding/updating lots of product documentation.  There are an enormous number of new features in vNext, so we want to make sure we cover everything.

What's Next

Our plan is to launch final 2015.1 version maintenance releases next week and then start transitioning internally to 2016.1 codebases.  Then we'll begin swapping in Docking/MDI vNext in place of the classic Docking/MDI product and will get all the related samples, documentation, etc. merged and ready to go.

Tags: ,
Filed under: Actipro, In development, WPF

Docking/MDI vNext - Beta Is About Ready

PostBannerWPFControlsDevNotes

We've spent the last several months working intensely on completely rebuilding the internals of our market-leading WPF Docking/MDI product.  This project is called "Docking/MDI vNext" and keeps the same general API surface, while providing even more advanced features in every area of the product, evolving it into a true best-of-breed docking tool window and MDI functionality solution.

Call for Beta Testers

We've been posting on our blog about many of the major new features coming your way in vNext.  We're pleased to announce that all of those features are now code-complete and we are preparing for a private beta test.

We already have received numerous beta tester requests.  If you have written us, we will be contacting you in the next several days!

If you are an existing customer and haven't yet contacted us about being a beta tester, please write our support address, tell us how you plan to use the vNext beta in your applications, and we'll get you signed up into the beta program.  We look forward to hearing from you!

Tags: ,
Filed under: Actipro, In development, WPF