Странный вопрос, но это немного меня озадачивает. В старые времена, когда у нас были терминалы и DOS, приложения обычно имели только одно «окно», и это было полноэкранное. Когда люди переключали функции, не было понятия открытия нового окна, но вместо этого содержимое главного окна было перезаписано. Таким образом, было только одно главное окно, но несколько экранов, которые были отображены в нем.Реализация нескольких экранов в приложении
Как создать что-то подобное в современном приложении, будь то WinForms или WPF?
Там, кажется, два подхода:
- несколько окон. Это обычный подход, и обычно имеет смысл разрешить пользователю работать с несколькими окнами одновременно, но это может не потребоваться/не требуется. Использование ShowDialog() вместо Show() - это обычный способ сделать второй Window Modal.
- Имейте только одно окно, но с TabControl на нем. Скройте вкладки и программно переключите их. Это близко к поведению «Одно окно, несколько экранов», но, естественно, оно становится беспорядочным, так как все элементы управления в одном классе формы (хотя можно утверждать, что это заставляет правильно называть элементы управления. Также можно рекомендовать использовать частичные классы и один .cs на экран)
Интересно, есть ли лучший способ? По сути, это то, что говорит: «Послушай, меня не волнуют такие вещи, как стили границы/значки или полоса главного меню. Все, что я хочу, это то, что вы отображаете этот экран в этой области». Kinda, как ASP.net Master Pages, где фактические страницы определяют только контент, который отображается в Placeholders.
Есть ли какой-то механизм, чтобы сделать что-то подобное?
Или есть что-то не так со всем подходом?
+1; Я просто написал вариант ответа. Теперь мне не нужно! –
Это отличная идея, особенно потому, что пользовательские элементы управления могут быть помещены в другие контейнеры 8, например, панель), что делает управление безболезненным. –