C#のWPFで共有できそうなウインドウをDLL化する

いくつものプロジェクトを作成していると、似たような画面を何度も使う事があると思います。

例えばログイン画面とか。

そんな時は共通するウィンドウをDLLにして、各プロジェクトからそのDLLを参照すのが良さそうだと思うのではないでしょうか?

 

WPFのウインドウやコントロールをDLL化する方法を解説します。

 

「クラス ライブラリ」では作れない

DLLを作るといえば、新しいプロジェクトで「クラス ライブラリ」を選択してDLL用のプロジェクトを作成する事を考えるかもしれません。

 

しかしこれ方法ではユーザーコントロールは作れてもウィンドウやカスタムコントロールを作る事が出来ません。

「WPF ユーザーコントロール ライブラリ」で作る

新しいプロジェクトで「WPF ユーザーコントロール ライブラリ」を選択してDLL用のプロジェクトを作成しましょう。

 

「WPF ユーザーコントロール ライブラリ」は「テンプレート」→「Visual C#」→「Windows」→「クラシック デスクトップ」の中にあります。

「WPF アプリケーション」をDLLにする

「WPF アプリケーション」として作成したプロジェクトの最終的な出力形式を「EXE」ではなく「DLL」に変更する事が出来ます。

 

変更の手順は以下の通りです。

手順1.出力の種類を変更

「WPF アプリケーション」として作成したプロジェクトのプロパティを開きます。

「アプリケーション」欄の「出力の種類(U):」を「クラスライブラリ」へ変更しましょう。

手順2.App.xamlのビルドアクションを変更

出力の種類を変えただけではビルドが出来ません。

プロジェクトの中にある App.xaml のプロパティを開きます。

ビルドアクションを「なし」に変更しましょう。

以上の手順を行えばビルドが正常終了するようになり、EXEの代わりにDLLが作られるようになります。

 

DLLで作成したウィンドウやユーザーコントロールを利用するには

C#のWPFでDLL内のユーザーコントロールを利用する」を参照してください。