Статические ресурсы в WPF в подключаемом приложении

В настоящее время я работаю над корпоративным приложением WPF, и у меня возникают некоторые проблемы со статическими ресурсами: глобально определенные стили и преобразователи.

Приложение работает следующим образом:

  • Существует приложение WPF с общим хостом, которое используется в качестве хоста для компонентов, разработанных разными командами (это приложение PRISM, а MEF используется для импорта плагинов).
  • Каждая команда может добавлять плагины, создавая новые библиотеки DLL, но не может изменять библиотеки DLL других команд.
  • Никакие изменения не могут быть внесены в хост-приложение

Моя команда отвечает за несколько плагинов, и нам нужно добавить больше функций, но нам интересно, как лучше всего решить нашу проблему.

В простом (стандартном?) приложении WPF у нас были бы стили, определенные в файле App.xaml, и все xaml UserControls или Windows могли бы легко ссылаться на них во время разработки и, конечно, во время выполнения.

Но теперь, хотя мне удалось заставить стили работать во время выполнения, я не могу заставить их работать во время разработки, и это вызывает две основные проблемы:

  1. Я не вижу, как все будет выглядеть в IDE
  2. Когда я ссылаюсь на конвертер, IDE жалуется, но я не знаю, как он будет работать во время выполнения или нет.

Как заставить StaticResources импортироваться и одновременно работать в моей IDE?

Если это невозможно, какие другие стратегии я могу использовать для решения этих проблем?


person mhttk    schedule 20.04.2015    source источник


Ответы (1)


Если я вас правильно понимаю, вы хотите использовать вкладку «Дизайн» в Visual Studio, чтобы увидеть изменения стиля и проверить внешний вид вашего приложения WPF.

Если это так, я вас разочарую, но я еще не встречал ни одного разработчика WPF, использующего представление «Дизайн» вместо «XAML» для внесения изменений и т. Д. В более продвинутые приложения. К сожалению, представление «Дизайн» имеет много недостатков, не отображает представления должным образом, имеет проблемы с конвертером статических ресурсов и, более того, оно всегда требует ресурсов.

То, как мы работаем с приложениями WPF, заключается в их создании и проверке проблем и изменений с помощью утилиты Snoop для исследования приложения. , ошибки привязки, проблемы со стилем и т. д. Я никогда не видел способа использовать сборку в представлении «Дизайн» без множества недостатков, хаков и проблем с производительностью.

Более того, вы должны написать поддельное хост-приложение, чтобы вы могли запускать свои плагины без необходимости запуска основного приложения (если это для вас проблема).

person Mike Nowak    schedule 20.04.2015
comment
Да, я хочу, чтобы вкладка «Дизайн» «признавала» стили и отображала их. Я не ожидаю, что у меня будет полное представление о вещах, но, по крайней мере, цвета и шрифты. Но проблема с преобразователями заключается в том, что хотя приложение будет построено, даже если xaml не сможет найти их как статические ресурсы, для каждого неразрешенного преобразователя может возникнуть ошибка времени выполнения (полное исключение!) - person mhttk; 20.04.2015