Pergunta

Eu tenho um WPF UserControl, que eu uso em um controle WinForms em um elementHostControl. Em seguida, inicio uma janela WPF, enquanto o formulário do Windows ainda está aberto. Se eu fechar a janela WPF e tentar adicionar um elemento filho ao meu WPF UserControl, ele trava em "InitializEComponent ()" (do elemento filho) com a exceção:

"Uma exceção de primeira chance do tipo 'System.configuration.configurationErrorSexception' ocorreu em System.configuration.dll. Informações adicionais: Este elemento não está atualmente associado a nenhum contexto"

Eu descobri por que isso acontece, mas não sei como resolver o problema. Se eu deixar de fora este código:

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);
        }
    }

Então está tudo bem. Eu preciso disso, porém, devido ao fato de que meu recurso (e, portanto, também meus estilos e modelos definidos) não estão disponíveis em toda a janela e controles do WPF. Isso eu descobri aqui

Existe alguma maneira de combinar o melhor dos dois mundos? Manter meu recurso, impedindo que o aplicativo trava?

Foi útil?

Solução

Eu resolvi eventualmente adicionando o recurso em cada janela manualmente através do XAML. Dessa forma, o UserControl em minhas formas de Winform permanece inalterado.

Ainda não entendo exatamente Por quê Infelizmente, ele caiu, infelizmente.

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/KolonistenClient;component/KolonistenResourceDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top