1

私の主なプロジェクトはWPFの下にあり、私のソリューションには次のものがあります:

  1. 名前が Form1 の winform
  2. MainWindow.xaml という名前の wpfForm

私はこの仕事をしたい: ボタンがクリックされた場合、MDIとまったく同じように MainWindow に Form1 を表示します。

4

6 に答える 6

3

この場合、私を助けてくれてありがとう、あなたの答えは本当に私を助けます、しかし私は私の目的を見つけました:私は私のフォームコードでwpfウィンドウ(私のウィンドウフォームコントロールではなく)にウィンドウフォーム(form1)を使いたかっただけです、私はただ継承を変更しますこのようなフォームの代わりにユーザーコントロールへのフォーム1の

public partial class Form1: UserControl
{
  /// my code ...
}

そのため、フォームがusercontrol now(nice job)であるため、windosformshostでこのusercontrolを使用できますが、別の問題が発生しました。コントロールに視覚的なスタイルがありませんでした。そのため、msdnで検索し、このリンクから回答を得ました。visual_Problem答えはenable_visualにありました 。つまり、winformshotがWindowsフォームをホストする前に(ユーザーコントロールを提供する)、次のコードを記述する必要があります。

System.Windows.Forms.Application.EnableVisualStyles();

コメントしてくれてありがとう。よろしく、Hothreeyn。

于 2012-01-09T08:47:24.767 に答える
1

MSDN から: WindowsFormsHost クラス

WindowsFormsHost 要素を使用して、WPF 要素またはページ内に Windows フォーム コントロールを配置します。

Windows フォーム コントロールまたはフォームで WPF 要素をホストするには、ElementHost コントロールを使用します。

WPF 要素で Windows フォーム コントロールをホストするには、Windows フォーム コントロールを Child プロパティに割り当てる必要があります。

WPF で MDI レイアウトを処理し、WPF 子ウィンドウ内に WindowsFormsHost コントロールを配置し、Windows フォーム コントロールを作成したら、それを WindowsFormsHost の子として割り当てる必要があると思います。

于 2012-01-06T16:16:01.747 に答える
0

WPFのコントロールについては、 MSDN ドキュメントを参照してください。WindowsFormsHostドキュメントの最後に、WinForms コントロールを WPF に統合するために使用する方法を示す例があります。あなたがする必要があるのはMaskedTextBox、あなたのコントロールに変更することだけです: Form1

于 2012-01-06T16:13:16.660 に答える
0

私が理解しているように、WinForm 全体を WPF と相互運用することはできません。WindowsFormHost を介して WPF サーフェスに WinForm コントロールを配置できますが、フォームには配置できません。

WinForm フォームのすべてのコンテンツを WinForm UserControl にパッケージ化できる場合は、これを実行できるはずです。

于 2012-01-06T16:15:00.970 に答える
0

WPF には MDI のネイティブ サポートがありません。この wpfmdi.codeplex.com またはより複雑なこの chronoswpf.codeplex.com を使用できます。

于 2012-01-06T16:35:26.997 に答える
0

コントロールを使用WindowsFormHostすると、WPF で Windows フォーム コントロールを使用できます。このリンクを参照できます。

于 2012-01-06T16:18:38.783 に答える