andreycha
@andreycha

Silverlight: Page vs. UserControl

Приветствую.

Возникла потребность в разработке Silverlight-приложения. По концепции ближе всего старые-добрые MDI. Условно говоря, есть главное меню, есть различные окна, и нужна возможность одновременной работы с несколькими окнами.

В связи с этим возник вопрос, чем воспользоваться при разработке отдельных «окон»?
Страницы (Page) можно отображать внутри единого фрейма, но тогда теряется возможность одновременной работы.
«Окна», оформленные как контролы, которые кладутся на таб контрол, позволяют такую одновременную работу. Но в чем тогда их принципиальное отличие от страницы?

З.Ы. Опыт разработки в SL — нулевой, сижу только второй день читаю интернет.
  • Вопрос задан
  • 2556 просмотров
Пригласить эксперта
Ответы на вопрос 2
Certik
@Certik
Простите, я не очень знаю техническую сторону разработки сильверлайт-приложений, но у меня есть некоторый опыт тестирования сильверлайт и флекс приложений.
«Окна» как таб-контрол — довольно изящно смотрятся, основное отличие, я так понимаю, в том, что можно поименовать сами табы.
Есть еще вариант — это окна на основе попапов. Тогда делается некая общая часть, типа хедер, статусбары, и тп, плюс панель для вызова этих окон. А основное рабочее пространство — просто некий, грубо говоря, бокс, в котором окошками открываются нужные модули. Соответственно. окошки можно таскать, ресайзить и тп. Но готовьтесь столкнуться с накладыванием кучи ограничений как на позицию окон, так и на их размер.
Ответ написан
Комментировать
kefirr
@kefirr
Page заточены под навигацию внутри ContentFrame. Собственно, Page унаследован от UserControl, с добавлением свойств и методов для навигации.

Так как вам нужна одновременная работа и не нужна навигация — используйте UserControl. Разве что свойство Title может пригодиться для заголовка окна, но из-за одного строкового свойтва использовать «неправильный» контрол я бы не стал.

В любом случае, думаю, что лучше сразу сделать некоторый базовый класс для ваших «окон», который изначально можно унаследовать от UserControl, а затем, если вдруг что, заменить на Page.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы