WPF: одно окно, несколько просмотров - PullRequest
5 голосов
/ 22 ноября 2011

Однажды я спросил, как отобразить несколько представлений в одном окне в приложении windows-forms ( ссылка ). Теперь я хотел бы знать, как сделать то же самое в WPF-приложении.

Ответы [ 3 ]

1 голос
/ 22 ноября 2011

В вашем MainWindow.xaml может быть только одна панель стека. Ничего больше. Вы определяете все свои представления в других файлах xaml. Просто родительский элемент не является окном. Вы должны иметь его в виде Grid / StackPanel. Когда вы хотите загрузить новое представление, вы просто устанавливаете корневой элемент соответствующего представления (или само представление) как дочерние элементы StackPanel в MainWindow.xaml

1 голос
/ 22 ноября 2011

Лучшим вариантом является использование инфраструктуры MVVM, такой как Caliburn.Micro , которая делает просмотр композиции очень простым. В этом случае у вас будет, например, экран оболочки, который будет проводником, а каждый из ваших вспомогательных экранов будет просто другими моделями представления, на которые будет ссылаться ваша оболочка, и каждый из них станет активным элементом, когда потребуется для отображения.

0 голосов
/ 22 ноября 2011

Я бы порекомендовал вам перейти на MVVM framework .Я думаю, что вам нужен MainTabControl, который будет иметь дочерние элементы управления.Дочерние элементы управления должны быть не Windows, а UserControls.Вы можете использовать DataTemplates в wpf, чтобы выбрать представление в соответствии с моделью представления.

Пожалуйста, дайте мне знать, если вам нужно больше объяснений по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...