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で作成したウィンドウやユーザーコントロールを利用するには



コメント