複数のプロジェクトで利用できそうなユーザーコントロールはDLLにして共有するのが良さそうです。
WPFのユーザーコントロールやウィンドウもDLLで作成し、それを参照して利用する事が出来ます。
WPFのユーザーコントロールを含むDLLのプロジェクトを作成する方法については
「C#のWPFで共有できそうなウインドウをDLL化する」を参照してください。
ここではDLLの中にあるユーザーコントロールを利用する方法について解説します。
プロジェクトの参照にDLLを追加
先ずはプロジェクトの参照にDLLを追加しましょう。
メニューから「プロジェクト(P)」→「参照の追加(R)...」をクリックします。
同一ソリューション内にDLLのプロジェクトがある場合は、左側のリストから「ソリューション」を選ぶとソリューション内のプロジェクトが一覧表示されます。
DLLのプロジェクトにチェックを入れて「OK」ボタンをクリックしましょう。
それ以外の場合は「参照(B)...」ボタンからDLLファイルを指定します。
XAMLへDLL内のユーザーコントロールを追加する
以下のサンプルで解説します。
<Window x:Class="WpfTest1.TestWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfTest1" xmlns:mylib="clr-namespace:TestLibrary;assembly=TestLibrary" mc:Ignorable="d" Title="TestWindow" Height="300" Width="300"> <Grid> <mylib:UserControl1/> </Grid> </Window>
ネームスペースの追加
7行目が追加したネームスペースです。
「clr-namespace:」に「assembly」という記述が必要になります。
ここに参照するDLLの名前を指定していきます。
clr-namespace:[ネームスペース名];assembly=[dll名]という書式です。
この例では「TestLibrary.dll」の中の「TestLibrary」というnamespaceを利用する事を宣言しています。
ユーザーコントロールを追加
11行目でDLL内にあるユーザコントロールを使用しています。
7行目で追加した「xmlns」の名前を使ってコントロールが追加できます。
コメントをお書きください