Различия между Библиотекой Пользовательского элемента управления WPF и простой Библиотекой классов?

Я отправил вопрос несколько месяцев назад о совместном использовании словарей ресурса через блоки. Оказывается, что можно сделать то использование расширения разметки Ключа Ресурса Компонента. В то время я мог только получить его работающий с проектом Пользовательского элемента управления WPF, не с простым проектом Библиотеки классов.

Теперь я должен использовать существующий простой проект Библиотеки классов разместить словарь совместно используемого ресурса. Это означает, что я должен модифицировать проект Библиотеки классов поддерживать расширение разметки Ключа Ресурса Компонента. Я добавил папку Themes и документ словаря ресурса Generic.xaml проекту Библиотеки классов, а также ссылки на PresentationCore, PresentationFramework и WindowsBase. К сожалению, это, кажется, не добивается цели.

Так, вот мой вопрос: Кроме вышеупомянутого, что делает проект Библиотеки Пользовательского элемента управления WPF, имеют это, простой проект Библиотеки классов не делает? Или, другими словами, что еще я мог добавить к своему проекту библиотеки классов получить эту работу функции?Спасибо.

5
задан Community 23 May 2017 в 11:55
поделиться

2 ответа

Помимо дополнительных ссылок WPF, WPF Шаблон пользовательской библиотеки контроля имеет дополнительный атрибут в AssessionInfo.

[assembly: ThemeInfo(
    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
    //(used if a resource is not found in the page, 
    // or application resource dictionaries)
    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
    //(used if a resource is not found in the page, 
    // app, or any theme specific resource dictionaries)
)]

Themeinfoattribute Определяет местоположение, в котором словари темы хранятся для типов в сборке.

6
ответ дан 14 December 2019 в 01:08
поделиться

Ответ Камерона Макфарланда был на месте. Теперь я проверил это, и это работает.

Вот решение: добавьте DLL Refs и файл Themes / Generic.xaml в проект библиотеки обычного класса. Затем откройте AssuaseInfo.cs и добавьте следующий код в конце файла:

[assembly: ThemeInfo(
    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
    //(used if a resource is not found in the page, 
    // or application resource dictionaries)
    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
    //(used if a resource is not found in the page, 
    // app, or any theme specific resource dictionaries)
)]

Recompile, и расширение разметки ключа ресурсов компонента должна работать.

1
ответ дан 14 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

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