I would like to control the appearance of tabs, for example, BackColor. From reading documentation, samples, forums, etc., and experimentation, I have much of the behavior I want.
What I would really like, though, is a way to know for sure that I got it right under all the conditions a tab might be in. For starters, just consider active vs. inactive, always unselected. Assume that ultraDockManager.WindowStyle is VisualStudio2005 (the ability to control tab appearance seemed inconsistent across the different WindowStyles, so I settled on this one).
There are many different PaneSettings objects, each of which contains many different appearance objects. The name of the appearance object gives a hint of its behavior, but I know from experience with UltraGrid that my intuition is not always correct. I would like to verify in a unit test that the appearance override hierarchy is what I think it is.
My strategy was the following:
1) Create a tabbed group, and set the tab states as desired.
2) Set the BackColor property of every appearance object I could find related to a tab, each with a different color.
3) Resolve the appearance and read BackColor, which would tell me which appearance bundle in which PaneSettings container won.
I ran into trouble at step 3, because I don't know how to programmatically sense the resolved appearance of the tab. There is a dockableControlPane.SettingsResolved property, but it does not contain appearance objects. If I check dockableControlPane.Settings.Appearance, for instance, I only ever get what I explicitly set there.
Where can I get the resolved tab appearance?
Thanks
Cast the pane to an ITabItem and call ResolveAppearance on that reference.