As this article from the
documentation explains: “Composite applications typically compose their user interfaces (UIs) from various loosely coupled visual components, otherwise known as views, that are defined in the application's modules.”
The purpose of defining views in modules and then show them in a
Shell (in this case using regions as a placeholder), is that you can choose what component should be added to the Shell without depending on its content. Therefore, it is not recommended to embed a control directly to the Shell.
In your particular scenario, I believe the best approach is placing your menu in a module’s view and loading your
MenuView in a region. The kind of control that should be declared as the region to hold the menu depends on your specific needs (step 3 of
this article explains this concept better).
The rest of the views in your application should be loaded into other regions, which depend on your application’s specifics.
Perhaps you could check out the
Commanding Quickstart for Silverlight source code, which declares an ItemsControl as a region. The example as a single button to the view which simulates a menu.
For hierarchical or more complex kind of menus, you may create a MenuService instead of a region, that is in charge of adding menu commands to the UI, and each module uses this service to populate
the menu at startup.
Please let me know if this helps.