Pregunta

Tengo un WPF UserControl, que utilizo en un control WinForms dentro de un ElementHostControl. Entonces comienzo de una ventana de WPF, mientras que la forma de Windows todavía está abierta. Si a continuación, cierre la ventana de WPF, y trato de añadir un elemento hijo a mi WPF control de usuario, por lo que se bloquea "InitializeComponent ()" (del Elemento niño) con la excepción:

  

"Una primera excepción del tipo 'System.Configuration.ConfigurationErrorsException' producido en System.Configuration.dll.   Información adicional: Este elemento no está asociada actualmente con cualquier contexto "

descubrí por qué sucede, pero no sé cómo resolver el problema. Si dejo a cabo 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);
        }
    }

entonces todo está bien. Necesito que sin embargo, debido al hecho de que mi ResourceDictionary (y por tanto también las formas que se indican y plantillas) no está disponible de otra a lo largo de la ventana y los controles de WPF. Esto me enteré de que aquí

¿Hay alguna manera de combinar lo mejor de ambos mundos? Mantener mi ResourceDictionary, al tiempo que evita la aplicación de estrellarse?

¿Fue útil?

Solución

Lo resuelto finalmente añadiendo el ResourceDictionary en cada ventana manualmente a través de XAML. De esta manera el control de usuario de Windows Forms en mis queda afectada.

Todavía no entiendo exactamente ¿Por qué se estrelló sin embargo, por desgracia.

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/KolonistenClient;component/KolonistenResourceDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top