ElementHostControl内のWinFormsコントロールで使用するWPFUserControlがあります。次に、Windowsフォームが開いたままの状態でWPFウィンドウを起動します。次に、WPFウィンドウを閉じて、子要素をWPF UserControlに追加しようとすると、次の例外を除いて、(子要素の) "InitializeComponent()"でクラッシュします。
「System.Configuration.dllでタイプ'System.Configuration.ConfigurationErrorsException'の最初のチャンスの例外が発生しました。追加情報:この要素は現在、どのコンテキストにも関連付けられていません。」
なぜそれが起こるのかはわかりましたが、問題を解決する方法がわかりません。このコードを省略した場合:
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を保持しますか?