Themes / Generic.xaml находится в другой сборке?
Проблема в том, что приложение не находит ResourceDictionary, в котором определены стили.
Что вы можете сделать, это создать статический класс SharedDictionaryManager, подобный этому:
public static class SharedDictionaryManager
{
private static ResourceDictionary _sharedDictionary;
internal static ResourceDictionary SharedDictionary
{
get
{
if (_sharedDictionary == null)
{
System.Uri resourceLocater =
new System.Uri("/assembly;component/Themes/Generic.xaml",
System.UriKind.Relative);
_sharedDictionary =
(ResourceDictionary)Application.LoadComponent(resourceLocater);
}
return _sharedDictionary;
}
}
}
И когда вы создаете HostControl, вы добавляете словарь ресурсов и управляете:
ctrl.Resources.MergedDictionaries.Add(SharedDictionaryManager.SharedDictionary);
Если у вас есть более одного словаря ресурсов, у вас может быть одно свойство, подобное этому, для каждого или у вас может быть свойство, которое загружает все словари ресурсов и затем объединяет все словари.
Теперь стиль, который вам нужен, должен быть выбран автоматически.