As mentioned in this previous post, we've been looking for ideas to further improve our WPF Docking/MDI product, which already is the market leader for docking tool window and MDI functionality. We've committed to working on a complete internal restructuring of the product that we will call Docking/MDI vNext. We're doing our best to keep the same general API surface, while providing even more advanced features in every area of the product. We've collected suggestions from our customers over the past several years and are working to meet them as best we can with Docking/MDI vNext.
In today's post, I'd like to discuss a feature that has been requested by customers: tool window container title bar customizations.
There have been certain scenarios where a customer has wanted to add custom buttons or content into the tool window container title bar. In the past, you could achieve this by making a clone of the ToolWindowContainer style/template and altering it to include your custom UI in the title bar area. This works but is tedious and we wanted to make this sort of thing very easy to do for vNext.
In vNext, each ToolWindow now has a ContainerTitleBarContentTemplate property that can be set to a DataTemplate to show in the tool window container title bars. This can be a button, a label, or any other UI element you can think of.
In this animated example, we show three auto-hide windows. Each has custom content in the title bar. The "Preview" tool window has a search button that renders with the same style as the other buttons. The "Label" tool window has a status label in the title bar that currently says "Status" but could be data bound to a property.
The "Status" tool window shows a custom circle indicator that says whether the "Is Approved" CheckBox is checked. When the CheckBox is toggled, it updates a value in the tool window's data context and the indicator changes to another color.
As a bonus, we're also showing how custom content can be injected into auto-hide tabs. The indicator for the "Status" tool window also appears there and updates live as well.
These are just some of the really advanced features we're adding to the product for vNext.
Docking/MDI vNext is currently still in early development stages but is progressing very well. Please contact us via email if you are an existing customer and would like to sign up as a beta tester for vNext. If you have any other suggestions for improving Docking/MDI, now is the time to get them in. We'll post more updates on our vNext improvements soon.
In the meantime, please download our current Docking/MDI control product and give it a spin.