A ContentPresenter
обычно используется при рестайлинге существующих элементов управления.Это место, где размещается Контент элемента управления.Вместо этого вы должны использовать ContentControl
, который является просто элементом управления, имеющим элемент содержимого.В качестве альтернативы, вы можете напрямую установить содержимое вашего окна.
Вы извлекаете содержимое двух ваших существующих окон в два элемента UserControls.Затем вы создаете новое окно, в котором будет размещено содержимое.В зависимости от вашей бизнес-логики вы устанавливаете содержимое этого окна (или ContentControl этого окна, если вы хотите дополнительный «основной» контент) в любой из этих двух пользовательских элементов управления.
РЕДАКТИРОВАТЬ:
Какотправная точка.Это не полный рабочий код, просто для начала.Обратите внимание, что это плохая архитектура;вам, вероятно, следует использовать MVVM или аналогичный подход, как только вы его запустите!
<Window>
<ContentControl Name="ContentHolder" />
</Window>
<UserControl x:Class="MyFirstUserControl" /> <!-- Originally the first window -->
<UserControl x:Class="MySecondUserControl" /> <!-- Originally the second window -->
В коде позади Window:
// Somewhere, ex. in constructor
this.ContentHolder.Content = new MyFirstUserControl;
// Somewhere else, ex. in reaction to user interaction
this.ContentHolder.Content = new MySecondUserControl;