2011-12-29 25 views
2

私はWinFormsと統合する必要があるWPFアプリケーションを持っています。いくつかのフォーラムで提案されているように、私は自分のプロジェクトからwindow1.xamlとapp.xamlを削除し、プロジェクトタイプをクラスライブラリに変更しました。その後、WinFormsプロジェクトでDLL参照を追加すると、 '' System.Windows.StaticResourceExtension 'の値を指定すると例外がスローされます。'というエラーが表示されます。 これはなぜですか?WPFアプリケーションをDLLに変換する

また、私はリソースディクショナリを使用しているので、私はapp.xaml内のマージ辞書内にすべてのリソースディクショナリ参照を追加していました。今私はこれをどうすればよいでしょうか?

また、私が観察したもう1つの例外は、 'System.Windows.Markup.StaticResourceHolder'に値を指定すると例外がスローされました。事前に

おかげで...あなたは何を記述している

+0

app.xaml – Code0987

+0

で行ったように、ユーザーコントロールの ' ... 'にリソースディクショナリを追加してみてください。確かに:WinFormウィンドウでWPFウィンドウを作成しようとしていますか?もしそうなら、それはうまくいかない。 – Euphoric

答えて

1

よく私のwpfアプリケーションをDLLに変換しました。 app.xamlとwindowを削除します。 ResourceDictionaryファイルを使用している場合は、各ユーザーコントロールにマージされたディクショナリとしての参照が必要で、ネストされたユーザーコントロールがある場合はそのような各参照がローカルユーザーコントロールであるため、ユーザーコントロールにはリソースディクショナリファイルへの参照が必要です。

0

は、リファクタリング、コードの抽出の多くを含む、複雑なプロセスです。

ビジュアルスタジオソリューションにいくつかのプロジェクトを追加し、すべての再利用可能なロジックをクラスライブラリプロジェクトに移動する必要があります。名前空間などを調整する必要がありますが、再利用可能なコードはすべてそこに移動する必要があります。

あなたのWPFアプリケーションはその後、クラスライブラリプロジェクトを参照する必要がありますし、あなたがそれを使い続けることができます...違いは、今、あなたはまた、クラスライブラリを使用して、溶液中のWinフォームプロジェクトを持つことができている...

あなたのドメインコードをできるだけUIから抽出しています...あなたは潜在的に同じライブラリを消費するWebアプリケーションを作成する可能性があります。

関連する問題