Am I right in observing that the Ribbon, Docks, and Grid do not share all the same themes? If so, what is the reasoning?
You can define your own themes if you want. If you just want to have Onyx/RoyaleStrong but don't want to define a new custom/washgroup theme then you can register a theme that just references the same xaml files. So the following could be used to register an Onyx theme that loads the XDM's Office2kBlack and a RoyaleStrong theme that loads the XDM's Office2kBlue.
Thanks Andrew! Its just that Onyx and RoyaleStrong are my favorites and I was bummed when they didn't exist for the Dock! I was hoping to give a drop-down to my users to pick a theme and then apply it the Ribbon, Dock, and Grid all at once. I guess I can do a substitute routine for the Dock so if Onyx is chosen, I substitute Office2007Black, etc.
There are a core set of themes in each assembly that are the same and are usually chosen based on the current os theme using the standard wpf theming infrastructure (e.g. aero, luna normal, luna olive, royale, etc.). We also have several theme assemblies (Water, Wind, ForestGreen, etc.) that should contain themes for all of the controls. However, DataPresenter & Ribbon have themes named Onyx and RoyaleStrong that are not currently defined in XamDockManager. I can't state the exact reason but I think its because the themes within the assembly are usually to deal with the various os themes and separate assemblies can be chosen by the developer to use a different theme. Note, you can define your own themes if you wish. I believe there are help topics that cover how to do this.