Лучшая практика создания приложения-оболочки WPF, отображающего экраны по требованию
-
19-09-2019 - |
Вопрос
Контекст: Я разрабатываю приложение WPF, которое будет содержать множество разных «экранов».Каждый экран содержит элемент, который, в свою очередь, содержит все визуальные элементы.Некоторые элементы вызывают события (например, флажки), экран имеет отдельные ресурсы и т. д.
Основное приложение является «оберткой» вокруг этих экранов:он содержит строку меню, панель инструментов, строку состояния и т.п. (в DockPanel) и место для отображения одного экрана.Через строку меню пользователь может выбрать, какой экран он хочет отображать.
Цель:Я хочу динамически загружать, отображать и (событие) обрабатывать один экран в пространстве основного приложения.Я не хочу копировать и вставлять все «обертки» на все разные экраны.А поскольку у меня много сложных экранов (около 300 — к счастью, они генерируются автоматически), я не хочу загружать их все при запуске приложения, а только по запросу.
Вопрос:
Что вы порекомендуете как лучший способ реализовать это?
Какие вещи мне следует использовать и исследовать:Страницы, окна или пользовательский контроль для экранов?Влияет ли это на обработку событий?
Решение
Робби, вы можете позаимствовать концепцию рабочего пространства из статьи Джоша Смита о WPF MVVM.Что вам нужно сделать, так это иметь одно окно хостинга (вашу оболочку) и загрузить в это окно рабочую область.Вы можете закрыть рабочую область и загрузить новую по мере необходимости, оставив открытой только одну в главном окне.
Связь:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
Другие советы
Вы можете использовать фрейм для размещения различных страниц.