Подтвердить что ты не робот

WPF используется в приложении WinForms, куда класть ресурсы приложения?

В настоящее время мы размещаем несколько элементов управления WPF в приложении WinForms. Приложение запускается с использованием метода System.Windows.Forms.Application.Run(...) и элементов управления WPF, размещенных с помощью ElementHost.

В обычном WPF-приложении я бы определил объект System.Windows.Application (App.xaml) и выполнил вызов на нем. Как правило, все ресурсы WPF на уровне приложений будут поступать туда. У нас этого нет.

Как я могу указать ресурсы уровня приложения для элементов управления WPF, но все еще работать как приложение WinForms?

4b9b3361

Ответ 1

В размещенной среде у вас нет простого доступа к приложению, Dr WPF имеет несколько методов работы в размещенном сценарии http://drwpf.com/blog/2007/10/05/managing-application-resources-when-wpf-is-hosted/.

Я лично использую свой класс SharedResources в рабочем проекте, VB6 Form hosting Winforms UserControl, на котором размещается ElementHost, где размещается WPF UserControl с широкой темой приложения для элементов управления WPF.

Ответ 2

Если вы размещаете элементы управления WPF в приложении WinForms, у вас нет объекта Application, на котором размещаются ресурсы приложения. Фокус в том, чтобы создать такой объект, загрузить ваши глобальные ресурсы и объединить их в ResourceDictionary.

Вот пример этого кода:

http://www.snippetsource.net/Snippet/26/load-application-level-resources-in-winforms-hosted-wpf-controls (исправлена ​​ссылка)