
We notice there is substantial delay in switch tabs in TabbedMdiHost inside Workspace. CPU jump and visual slowness.
We notice there is substantial delay in switch tabs in TabbedMdiHost inside Workspace. CPU jump and visual slowness.
Hello,
The tabbed MDI tab control is effectively a native WPF TabControl with additional styling and features. If you are seeing slowness when switching tabs, I would expect that you'd see the same thing with a native TabControl. When a tab switches, it unloads the content elements for the previously selected tab and loads the content elements for the newly-selected tab into the visual tree. If the content elements are extremely complex and slow overall to measure, arrange, or render, then that could cause a brief visual slowness in response to the switch. The only way to improve that would be to reduce the complexity of your content elements by using a smaller overall element hierarchy (fewer UI elements), use virtualization techniques in any items controls, etc.
If you use a performance profiler application like dotTrace, you could possibly identify which elements in your content element hierarchy are taking the longest to lay out.
Do you have something similar to IsContentPreserved that Telerik does?
[Modified 1 days ago]
Hello,
If you can provide some more information about your configuration, we can perhaps provide more suggestions. For instance:
1) Are you using MVVM to create your documents or XAML? Each DocumentWindow is a ContentControl and if the DocumentWindow.Content property is the UI element tree already (i.e. NOT using a viewmodel in its Content and a DataTemplate in its ContentTemplate), then that prevents the UI elements from being created beyond the first time the tab opens.
2) Do you have any bindings in your docking window that inherit data contexts from outside the docking window?
3) What kind of content are you showing and how complex is it?
4) Did you try performance profiling your application and did that help you zero in on where the cause of the slowdown is?
5) I'm not sure what the IsContentPreserved property does. It could be effectively what I'm getting at in #1. Or it could mean using some kind of Panel to contain the content of all tabs instead of the default ContentPresenter in the tab control's template that only shows the selected tab's content. Some discussion on doing that is in this thread.
Please log in to a validated account to post comments.