WinFormsのプロジェクトを作成します。
参照を追加
WPFのウインドウの代わりにUserControlを追加
WPFは後で、.xaml、.xaml.cs共に継承元のUserControlをWindowに変更します。
WPFからWinFormsの呼び出し
private void button1_Click(object sender, EventArgs e) { var wpf = new WpfWindow(); wpf.ShowDialog(); }
WinFormsからWPFの呼び出し
private void ButtonShowWinFormsOnClick(object sender, RoutedEventArgs e) { var form = new Form1(); form.ShowDialog(); }
どっちも同じですね。WinFormsのShowDialogにはownerを指定できるのですが、WPFのWindowをthisとして渡すことはできません。
課題
今回は.NET Frameworkからやってますが、最新の.NET Coreについては同じような方法が取れなさそうです。
サイドバーにアセンブリが表示されず、Xamlを選択と言うことができません。
解像度の問題なのかWinFormsからWPFを呼び出すと、呼び出し元のWinFormsのウインドウサイズが変動してしまいました。
どちらかに統一した方が無難ですね。