У меня есть WPF UserControl, который я использую в элементе управления WinForms в ElementHostControl. Затем я запускаю окно WPF, пока форма Windows еще открыта. Если я затем закрою окно WPF и попытаюсь добавить дочерний элемент в мой WPF UserControl, он завершится с ошибкой в InitializeComponent () дочернего элемента за исключением:
"Первое случайное исключение типа« System.Configuration.ConfigurationErrorsException »произошло в System.Configuration.dll.
Дополнительная информация: Этот элемент в настоящее время не связан ни с одним контекстом "
Я выяснил, почему это происходит, но я не знаю, как решить проблему. Если я пропущу этот код:
public static void EnsureApplicationResources()
{
if (Application.Current == null)
{
// create the Application object
new Application();
string assemblyName = System.IO.Path.GetFileNameWithoutExtension(
Assembly.GetExecutingAssembly().ManifestModule.Name);
// merge in your application resources
Application.Current.Resources.MergedDictionaries.Add(
Application.LoadComponent(new Uri("/KolonistenClient;component/KolonistenResourceDictionary.xaml", UriKind.RelativeOrAbsolute))
as ResourceDictionary);
}
}
тогда все в порядке. Хотя мне это нужно, потому что мой ResourceDictionary (и, следовательно, также мои определенные стили и шаблоны) в других случаях недоступен в окне и элементах управления WPF. Об этом я узнал здесь
Есть ли способ объединить лучшее из обоих миров? Сохранение моего ResourceDictionary при предотвращении сбоя приложения?