Конвертировать приложение WPF в DLL - PullRequest
2 голосов
/ 29 декабря 2011

У меня есть приложение WPF, которое мне нужно интегрировать с WinForms. Как предлагалось на каком-то форуме, я удалил window1.xaml и app.xaml из своего проекта, а затем изменил тип проекта на библиотеку классов. После этого, когда я добавляю ссылку на DLL в свой проект WinForms, я получаю сообщение об ошибке «Укажите значение» System.Windows.StaticResourceExtension «Вышло исключение». В чем причина этого?

Также, поскольку я использую словарь ресурсов, я добавлял все ссылки на словарь ресурсов в словаре слияния в моем app.xaml. Теперь только с пользовательским контролем, как бы я это сделал?

Также еще одно исключение, которое я наблюдал, это «Предоставить значение» System.Windows.Markup.StaticResourceHolder ', вызвавшее исключение.'

Заранее спасибо ...

Ответы [ 2 ]

2 голосов
/ 06 января 2012

Ну, я преобразовал мое приложение wpf в DLL, удалив app.xaml и окно. Убедитесь, что при использовании файлов ResourceDictionary каждый пользовательский элемент управления должен иметь ссылку на него как объединенный словарь, и поскольку каждая такая ссылка является локальной для его собственного пользовательского элемента управления, если есть вложенные пользовательские элементы управления, т. Е. Пользовательский элемент управления в пользовательском элементе управления весь пользовательский элементы управления должны иметь ссылку на файлы словаря ресурсов.

0 голосов
/ 03 января 2012

То, что вы описываете, является сложным процессом, включающим много рефакторинга и извлечения кода.

Что вам нужно сделать, это добавить несколько отдельных проектов в решение Visual Studio - и переместить всю вашу повторно используемую логику в проект библиотеки классов. Вам нужно будет настроить пространства имен и тому подобное ... но весь ваш повторно используемый код должен идти туда.

Ваше приложение WPF должно затем ссылаться на проект библиотеки классов, и вы можете продолжать его использовать ... разница в том, что теперь у вас может быть проект Win Forms в решении, которое ТАКЖЕ использует библиотеку классов ...

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...