У меня есть UserFontrol WPF, который я использую в элементе управления WinForms в ElementHostControl. Затем я запускаю окно WPF, а форма Windows все еще открыта. Если я затем закрыть окно WPF, и попытаться добавить дочерний элемент в моем WPF UserControl, он выходит из строя на «InitializeComponent()» (Элемент ребенка), за исключением:WPF - C#: этот элемент в настоящее время не связан ни с одним контекстом
«Первый шанс исключение из типа «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 и элементах управления. This I found out about here
Есть ли способ сочетать лучшее из обоих миров? Сохранение моего ResourceDictionary, предотвращая сбой приложения?
КСТАТИ: Я пытался вызова EnsureApplicationResources() метод в моем UserControl и в моем WPF окна (как до InitializeComponent). Оба пути привели к тому же сбою, что и в моем вопросе. – Xuntar