WPF - C#:この要素は現在、任意のコンテキストに関連付けられていません

StackOverflow https://stackoverflow.com/questions/2073497

質問

私はElementHostControl内のWinFormsコントロールに使用WPFユーザーコントロールを持っています。 Windowsフォームがまだ開いている間、それから私は、WPFウィンドウを起動します。私は、WPFウィンドウを閉じて、そして私のWPFユーザーコントロールに子要素を追加しようとすると、それは例外で(子要素の)「の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を維持?

役に立ちましたか?

解決

私はXAMLを介して手動で各ウィンドウでのResourceDictionaryを追加することによって、最終的にそれを解決しました。このように私のWinFormsでのUserControlは影響を受けませんとどまります。

のそれはしかし、残念ながら墜落した理由ます。

は、まだ正確にを理解していません

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/KolonistenClient;component/KolonistenResourceDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
scroll top