Tweets by @Actipro
Please take some time to learn more about us and our product offerings.
A while back, we created a sample for showing how a hosted Windows Workflow Designer instance could be integrated with Actipro WPF controls within a custom WPF application to provide a very elegant interface for end users.
With the release of the 2016.1 version of our WPF controls, we've updated the sample again. Note how it now takes advantage of one of our new Office-like themes announced in yesterday's post:
Our Docking/MDI product is used to provide the tool window and multiple document interface. Our SyntaxEditor code editor control, in single line edit mode, is injected as a custom expression editor. When you combine SyntaxEditor with our .NET Languages Add-on, you are able to have it support powerful IntelliPrompt completion lists. For instance, in the screenshot above, you can see the itemCount variable is showing up in the completion list since it was declared below. Our Themes product is used to provide a modern Metro style for all Actipro and native WPF controls.
When you put it all together, it's very easy to integrate Actipro WPF controls with rehosted Windows Workflow Designer instances in your applications. It only takes a few minutes to get up and running, and once you do, the result is well worth the time.
If you rehost the Windows Workflow Designer in your WPF apps and would like our example, please contact us and we'll be happy to share it with you!
For those customers who downloaded either of the prior versions, this update is at the same URL as before.
The 2016.1 version of our WPF Controls is now here and it's a whopper. It contains all of the extensive new feature development work we've done on Docking/MDI over the past several months and have blogged about under the codename Docking/MDI vNext. It also has 14 new Office-like themes that match the Colorful and White themes found in the various Office suite applications. Now you can make your own apps look just like Office 2016! SyntaxEditor adds new Metro light and dark image sets that can be used within IntelliPrompt for a more modern appearance. Many other minor tweaks and improvements have been made across the product range as well.
See the entire lengthy detailed update list in our announcement post.
Please note that 2016.1 does have several breaking changes to support better API design and features, so be sure to read the "Converting to 2016.1" topic in the documentation that comes with the controls. It walks through everything in detail.
We've been blogging about some of the major new features coming to Docking/MDI vNext, and those are now here, along with many others. We'll dig in deeper in future blog posts but here's a taste of what's new.
The Docking/MDI product has completely rebuilt product internals, which are optimized and now support next generation features found in Visual Studio 2015. All UI control styles/templates have been rebuilt from scratch to be simpler and easier to customize. All UI now works with all forms of pointer input: mouse, touch, and pen. We've refactored and centralized focus handling and setting logic. We've refactored magnetism handling. We rewrote UIA to ensure better compatibility with Coded UI Test. All samples have been updated/improved, and new samples added to concisely show features.
Even though much of the product internals have been rewritten, most of the public API remains the same as before other than some type member renamings. The "Converting to 2016.1" topic walks through any breaking changes you encounter.
We also include the "old" 2015.1 variation of Docking/MDI in the WPF Controls download as "ActiproSoftware.Docking.Legacy.dll". This 2016.1 version of the old assembly can be used while you transition to the newer API.
Quick subtle animations have been updated and added throughout the product to give it a more vibrant feel. Dragging tabs uses smooth animations, dock guides and drop targets pop into place, and auto-hide popups slide in and out. All of these animations are designed to be fast and pleasing.
We've created a new AdvancedTabControl control that extends the native TabControl while adding many new features (appearance customization, animation, multiple tab kinds, new tab buttons, etc.), and is used as the primary UI mechanism within the ToolWindowContainer and TabbedMdiContainer templates. It can be used independently of docking windows too, in your own normal windows.
Layout logic has been updated to try to adhere to optional new desired, minimum, and maximum docked size hints on docking windows when space is available. For instance, you can say that you prefer to not let a tool window's container get smaller than 200px high. As long as space is available, the layout logic will do its best to adhere to that request. You can set minimum/maximum size hints the same to suggest a fixed size.
Also related to container sizes, when a layout is sized very small, then grows larger again, the original docking window sizes are restored.
A problem in the old version was the dragged splitter highlights didn't render above interop (WinForms, etc.) content due to WPF's airspace issue. This scenario now works as expected when interop support is enabled.
Several DockingWindow members have been added to designate preferences for initial dock location when opened, such as with other windows in a group, on a specific side, or at a dynamic location based on an event handler's logic. Best of all, the properties can all be bound to view-models, allowing you to fully designate initial locations for docking windows purely via MVVM.
A new optional property lets you specify alternate text to render on tabs, generally shorter than the Title text. This is useful in scenarios where your tool window titlebar might have contextual information "Error List - 7 Errors" but your tab should only show "Error List".
Flash effects were supported in the old version via an attached behavior found in the samples, but now tinting and flash effects are first-class citizens via easy-to-use properties right on DockingWindow. Strobe and smoothly animated flash options are both available.
A new property is available for setting a docking window's tab tooltip content. Tabs can now be set to display on any side of a container, not just top and bottom. All tabs can now be middle-clicked to close them.
New properties have been added that allow custom content like buttons or status indicators to be easily injected into title bars and tabs.
A new property has been added that can uniquely identify a docking window with any string value, instead of using the Name property as before, which was limited to identifier syntax. A new properly can prevent a docking window from being included in layout serialization.
Floating windows now support Aero snap when dragging, meaning you can drag to the top of the screen to maximize the window, etc. When dragging a tab to float, as long as the docking window can float, it will instantly detach and track in a floating window with the mouse. A new option allows you to indicate you want to only use float previews instead of live-dragging windows.
When documents are floated, they now enter a full-fidelity secondary MDI area where other documents can be attached, and even tool windows can be docked around. This is great for use with multiple monitors. Properties are available for setting the icon and title of these floating windows.
A new property has been added that determines what minimum amount a floating window must be visible to avoid being snapped to screen. Partially-visible floating windows will now snap to this minimum threshold as appropriate.
A new event allows you to later and limit a floating window's initial size.
Tabbed MDI has three modes of tab display (normal, pinned, preview), which are similar to those found in Visual Studio 2015. New context menu options are availble such as "Close Others", "Close All Documents", "Pin Tab", etc.
A new tab button can optionally be shown and an event handled in response to add a new document. This allows for UIs like Google Chrome.
TabbedMdiHost now has a property for setting a DataTemplate that displays when there are no documents open.
Dock guides now show over standard MDI so that dragged windows can be dropped into it. A context menu is now available when clicking a standard MDI window's icon or right-clicking its title bar.
An option is available to perform automatic size-to-content when adding a docking window to standard MDI.
All docking window standard MDI layout properties have been refactored and made more straightforward to access.
Many improvements in the area of MVVM have been made. Properties like IsOpen, IsActive, IsSelected, and State are now fully settable and can be bound to view models. Default locations (see above) can be specified via new properties designed for MVVM compatibility.
MVVM implementation has been improved to be more straightforward since docking windows are now the actual container of their content, instead of being represented in UI as a tab.
In MVVM usage, unregistered windows will now automatically attempt to remove themselves from the appropriate DockSite items source property if a new related option property remains true.
Docking windows can be defined in XAML and have their IsOpen property set (or bound to a view model property) to false to close them on initial dock site load, but leave behind a breadcrumb for future restoration.
The standard switcher UI has been improved to a new, more modern user interface that animates on display and supports scrolling when there is overflow.
Multiple new standard switcher properties have been added to allow for full customization of its appearance.
The Prism sample has been updated to use Prism 6.1 and includes all source for Prism integration right in the sample instead of in a separate interop assembly.
Seven new accent color variations of the MetroLight theme have been added that render similar to the Office 2016 Colorful theme. Seven new accent color variations of the MetroWhite theme have also been added that render similar to the Office 2016 White theme
Now your WPF apps can render exactly like Office 2016 apps.
WindowChrome title bar buttons in Metro themes have been updated to use the larger, crisper Windows 10 style.
In previous versions, Metro themes were shipped in their own assembly that required referencing and registration during app startup. In 2016.1, the Metro themes are built directly into the Shared library and no longer require registration. Further, MetroLight will be the default theme on Windows 8.x/10 systems.
Since Windows XP is past its support lifetime, we moved all Luna themes out of the Shared library and into their own separate library, similar to how Metro themes used to be. That library must be referenced and those themes specifically activated if you wish to continue using them.
The changes mentioned above are minor breaking changes (see our documentation for upgrade steps) but better support newer Windows versions and also reduce the overall size of the Shared library.
The new accent color MetroLight themes that render similar to Office 2016 require the use of white monochrome icons in certain locations such as the upper QAT, tab panel, and status bar. Features have been built into the ribbon button themes to automatically do this conversion for you.
Simply use standard color Metro-styled icons and they should be automatically converted to pure white when appropriate for you without you needing to do anything. Note how this has occurred for the QAT buttons in the screenshot to the right.
New MetroLight and MetroDark image sets have been added for use with IntelliPrompt. The current set can be selected via the new static CommonImageSourceProvider.DefaultImageSet property.
Use the appropriate image set based on the current application theme. The screenshot above shows the Classic, MetroLight, and MetroDark image sets within a completion list.
While we are currently finalizing our major new control product 2016.1 versions, we wanted to release a new poll on our site to gauge customer thoughts on the various Microsoft UI platforms.
This input will help to guide our development efforts in the future, so we highly encourage all of you to take a couple minutes and fill it out. It gathers quick input on your thoughts of the WPF, UWP, WinForms, and other platforms.
Thank you for taking the time to give us your valued feedback!
In this quarter, we've focused on completing the Docking/MDI vNext features that have been described in this blog thus far, along with many others, making it the most feature-rich product of its kind for WPF. Docking/MDI vNext is now feature complete and will ship in the upcoming 2016.1 version.
Another set of major work that will be included in the 2016.1 WPF Controls is updates to our theming system. We have fully-implemented seven color options for both the Office 2016-like Colorful and White themes, bringing a total of 14 new themes to the WPF controls. We are moving our Metro themes directly into the Shared library so that Metro Light will now be the default theme for all Windows 8.x and 10 systems. The old Luna/Royale themes that are for XP appearance are being moved into their own separate assembly. Since Microsoft has stopped supporting Windows XP, moving these themes out reduces the Shared assembly size while still allowing the themes to be utilized programmatically by apps that want them.
Finally, we have been porting the WinRT/XAML controls to UWP and while most of this work is complete, there were unexpected issues introduced by UWP's usage of .NET Native that we had to work with Microsoft to overcome.
The launch of our 2016.1 versions is just around the corner that will contain massive enhancements described for WPF per above.
We will also continue wrapping up the UWP controls. Please write our support address if you are interesting in help beta test them.
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.
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:
The 2015.1 appearance of Metro themed title bar buttons
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.
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.
We are currently looking for beta testers for these controls. If you would like to participate in beta testing, please contact our support address.
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.
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.
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.
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.
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:
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.
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.
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!