У меня есть приложение Windows Forms, которое должно содержать элемент управления WPF во время выполнения. У меня есть базовый хостинг и взаимодействие (с помощью элемента управления ElementHost), и все работает нормально, пока я не попытаюсь сделать что-то, что требует, чтобы элемент управления WPF использовал определенные пользовательские словари ресурсов, которые определены. (Управление WPF и все эти словари ресурсов все определены в том же WPF Control Library DLL.)Загрузка/использование ресурсных словарей из WinForms размещенного элемента управления WPF
Как только это произойдет, я получаю кучу ошибок, которые выглядят так:
System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='DocumentHeaderInterestStyle'
Я нашел один reference (ссылка кажется мертвой из-за архивирования, thisможет быть той же статьей, на которую первоначально ссылались). что об этом говорит, но похоже, что статья приближается к вещам больше со стороны WPF, но я действительно не хочу вносить изменения в элемент управления WPF, поскольку все работает в автономном приложении WPF.
Если единственный способ добиться этого - внести изменения на стороне WPF, я могу получить эти изменения (я не несу ответственность за библиотеку управления WPF, но человек, который также работает для одной и той же компании, не проблема, кроме того, что ему нужно время для внесения изменений.), но я надеюсь на то, что я могу сделать на стороне WinForms, чтобы заставить это работать.
Библиотека управления WPF имеет словаря ресурсов файл с именем «Default.xaml» определены в проекте со следующими свойствами:
Сложение Действие: Page Копировать в выходной каталог: Не копировать Выборочная инструмент: MSBuild Компиляция
автономная WPF приложение имеет следующую запись в этом App.xaml файл:
<ResourceDictionary x:Uid="ResourceDictionary_1">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary x:Uid="ResourceDictionary_2" Source="/SmartClient.Infrastructure;component/Themes\Default.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Похожа библиотекой управления уже должно знать, как т o получить свои ресурсы. Использование Resource.MergedDictionaries.Add() похоже, что оно должно работать, но где я могу получить экземпляр существующего словаря?
Где бы «ключ» и «значение» приходят из за вызов? Добавить –
Это имеет смысл, но разве словари уже не слиты? Я обновил свой вопрос с дополнительной информацией о том, как выглядит сторона WPF. –
Вы потрясены, это сработало волшебно. Вы действительно спасли мое время. –