WPF - C #: этот элемент в настоящее время не связан ни с одним контекстом - PullRequest
2 голосов
/ 15 января 2010

У меня есть 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 при предотвращении сбоя приложения?

1 Ответ

0 голосов
/ 16 января 2010

Я решил это в конце концов, добавив ResourceDictionary в каждое окно вручную через xaml.Таким образом, UserControl в моих WinForms остается незатронутым.

Все еще точно не понимаю , почему он упал, хотя, к сожалению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...