Я пользуюсь Composite wpf в течение нескольких месяцев и не вижу причин, по которым вы не сможете выполнять то, что вы просите.
Я бы, вероятно, не пошел по пути нескольких оболочек, есть «проект Composite wpf contrib», который определяет «WindowRegionAdaptor», который должен облегчать показ представлений в отдельных окнах (см. Здесь: http://www.codeplex.com/CompositeWPFContrib) Я не использовал его, но использовал некоторые другие элементы, и они работают так, как рекламируется. Хотя в настоящее время документация на некоторых из них не существует, форумы могут быть полезны.
Я бы попробовал, но вы могли бы использовать агрегатор событий, чтобы опубликовать событие по вашему действию двойного щелчка
eventAggregator.GetEvent<MainWindowShowEvent>().Publish(false);
, на который ShellPresenter может подписаться и вызвать представление оболочки, чтобы скрыть при получении:
eventAggregator.GetEvent<MainWindowShowEvent>().Subscribe(b => View.Show(b) );
затем используйте WindowRegionAdaptor, чтобы отобразить диалоговое окно прогресса, а затем по завершении опубликовать второе событие, на которое подписывается главное окно, которое заставляет его отображаться снова .. (выше я использовал полезную нагрузку вместо этого, чтобы указать, должна ли оболочка отображаться или скрываться )
надеюсь, что это поможет - все не проверено
Trev