Пишу программу на WPF, в основном для работы с табличными данными — разные расчеты, обработка и т.п. Сейчас оно представляет собой небольшое главное окно, из которого можно открывать разные дочерние модули в новых больших окнах. Сначала в такой идее я не нашел ничего плохого, но уже по мере разработки стало ясно, что интерфейс не очень удобный — окна постоянно загораживают друг друга, и если их по какой-либо причине не закрывать, то их количество стремительно растет. Но есть и преимущество — можно рядом расположить два окна и сравнивать их содержимое. К сожалению, я сейчас не могу предсказать, как часто это будет нужно, но мне кажется, что не часто. Или, например, что-то делал, нужно стало посмотреть в другом месте. Открыл другое окно, посмотрел, вернулся. А в однооконном интерфейсе чтобы посмотреть второе, надо закрыть первое. Опять же, решается чем-то типа "открыть в новом окне / в новой вкладке" (хотя это немного труднее в разработке).
Хочу, пока не слишком поздно, переделать все в однооконный режим, чтобы нельзя было открыть одновременно более одной страницы. Вокруг открытой страницы — общие для всех страниц элементы — навигация, меню и т.п. В отдельных окнах открывать только мелкие второстепенные кратковременные диалоги и мастера. На случай, если нужно видеть два набора данных, можно открыть два экземпляра программы — этому ничто не препятствует, конфликтов не будет.
Ну и вопросы:
1) Насколько оправданно переходить на однооконный интерфейс? Может и многооконный еще ничего
![](/Forum/Images/smile.gif)
? Или это абсолютное зло и антипаттерн? (Делфи и гимп отказались от многооконности, но там окна мелкие и распределены по всему экрану, а у меня нет).
2) Если оправданно, стоит ли реализовывать вкладки, как в браузере? Насколько это бывает полезно/вредно для пользователей? Или не тратить время?
Понятно, что во многом все зависит от специфики приложения, но может у кого-то есть однозначное мнение на этот счет, или кто-то просто захочет поделиться опытом.