WPFアプリケーションからWinFormsのコントローラを使う
WPFアプリケーションを作成していると、WPFにはないけど、WinFormsにはあるコントロールをどうしても使いたいという場面が出てきます。今回はそんなときにWPFアプリケーションからWinFormsコントローラを使用する方法を解説します。
System.Windows.Formsへの参照の追加
プロジェクトの参照設定を右クリックして「参照の追加」を選択します。
参照マネージャーのウィンドウが表示されるので、フレームワークから「System.Windows.Forms」にチェックを付けます。
WindowsFormsIntegration.dllへの参照追加
参照マネージャーの参照ボタンを押下します
ファイル選択ダイアログが表示されるので「WindowsFormsIntegration.dll」を選択します。
※このDLLは.Netのインストール先フォルダにあります。
例:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF
XAMLの修正
名前空間の追加
WinFormsコントロールを参照するために名前空間を追加します
<Window x:Class="UsingWinFormsTest.Views.MainWindow" … xmlns:winform="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" …>
コントロールの追加
今回はWinFormsのLabelを使用します
<Grid> <WindowsFormsHost> <winform:Label Text="Windows Forms Label" /> </WindowsFormsHost> </Grid>
実行
実行してみます。ちゃんとLabel表示されることが確認できました。