Domanda

Ho un UserControl WPF, che uso in un controllo all'interno di un WinForms ElementHostControl. Poi comincio una finestra WPF, mentre la forma di Windows è ancora aperto. Se io quindi chiudere la finestra WPF, e provo ad aggiungere un elemento figlio al mio WPF UserControl, si blocca al "InitializeComponent ()" (dell'Elemento Bambino) con l'eccezione:

  

"Una prima eccezione di possibilità di tipo 'System.Configuration.ConfigurationErrorsException' si è verificato in System.Configuration.dll.   Ulteriori informazioni: Questo elemento non è attualmente associato a qualsiasi contesto "

ho scoperto perché succede, ma non so come risolvere il problema. Se lascio questo codice:

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

allora tutto va bene. Ho bisogno che però, a causa del fatto che la mia ResourceDictionary (e quindi anche i miei stili e modelli definiti) non altrimenti disponibili in tutta la finestra e controlli WPF. Questo ho scoperto qui

C'è un modo per combinare il meglio dei due mondi? Mantenendo la mia ResourceDictionary, evitando l'applicazione di schiantarsi?

È stato utile?

Soluzione

ho risolto eventualmente aggiungendo il ResourceDictionary in ciascuna finestra manualmente tramite XAML. In questo modo l'UserControl nei miei WinForms rimane inalterato.

Ancora non capire esattamente perché si è schiantato se, purtroppo.

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/KolonistenClient;component/KolonistenResourceDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top