トップ回答者
WPFのWindowをDLLし共有したい

質問
回答
-
DLLのプロジェクトを「WPF ユーザーコントロール ライブラリ」として、そのプロジェクトに新しい項目としてウィンドウを追加することでWindowを内部に持ったDLLができますよ。
あとはそのプロジェクトを参照するか、ビルドで出来上がったdllを参照します。
あるいはexeプロジェクトのままでも参照できるので先に共通のウィンドウをexeで作ってしまうこともできます。
さらに、できあがったらプロジェクトのプロパティで出力の形式をクラスライブラリに変更してdllにできます。この方法の場合はapp.xamlが邪魔になるので、app.xamlのビルドアクションを「なし」に変更するか削除する必要があります。個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
すべての返信
-
DLLのプロジェクトを「WPF ユーザーコントロール ライブラリ」として、そのプロジェクトに新しい項目としてウィンドウを追加することでWindowを内部に持ったDLLができますよ。
あとはそのプロジェクトを参照するか、ビルドで出来上がったdllを参照します。
あるいはexeプロジェクトのままでも参照できるので先に共通のウィンドウをexeで作ってしまうこともできます。
さらに、できあがったらプロジェクトのプロパティで出力の形式をクラスライブラリに変更してdllにできます。この方法の場合はapp.xamlが邪魔になるので、app.xamlのビルドアクションを「なし」に変更するか削除する必要があります。個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
-
共通で使うものは別に作成するというのは良い発想だと思います。例えば単純に、ログイン画面とその他を別々の2つのプロジェクトに分けて開発し、あとで一つのソリューションにまとめるということもできます。この場合は、共通で使うプロジェクトの出力の種類をクラスライブラリに変更し、app.xaml、app.configを削除します。このようにプロジェクトを改変しますので、元のプロジェクトは残したまま、そのプロジェクトをコピーしたものを、まとめるソリューションに追加しなければなりません。もう少し詳しく書くと、アプリケーションとしてリリースするソリューションが一つと、開発用のソリューションが2つあることになります。アプリケーションとしてリリースする際には、このうちの共通のプロジェクトを丸ごとアプリケーションとしてリリースするソリューションにエクスプローラーでコピーし、クラスライブラリに変更し、app.xaml,app.configを削除してビルドすることになります。
この方法だと共通のプロジェクトを修正すると全てのアプリケーションで上記の作業がやり直しになるという欠点があります。しかし、逆に言えばそれはメリットにもなり、それぞれが独立しているので、独自にカスタマイズを入れるという運用をすることができます。おそらく、アプリケーションとしてリリースした後は、共通で変更を反映させるというより、後者の要件に対応できる方が適しているように思いますが、このような方法もあるということで参考になれば幸いです。★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 回答の候補に設定 星 睦美 2014年7月29日 7:58