1

好吧,基本上我只是在胡闹,实验等。我想出了尝试混合 WPF 和 WinForms 的想法,这个想法的原因是我已经/找到了我想在已经存在的 WinForms 项目中使用的东西。

我首先尝试从 WPF 项目中导入 .xaml 文件,但失败得很惨。它将它们作为 BlaBla.xaml.cs 导入,但没有成功。接下来,我查看了“Add > New Item...”中的“WPF User Control (XAML)”文件,但这不是我想要的。我想在同一个“.exe”的同一个项目中工作两个窗口,一个在 WPF 中,一个在 WinForms 中。

所以接下来我尝试使用另一种技术。我创建了一个新的“WPF 用户控件”,但是只是从“用户控件”中完全删除了现有代码,然后只是从 WPF 项目 .xaml“MainWindow.xaml”中复制粘贴了 xaml 代码。之后,我将用户控件重命名为“MainWindow”。

然后出现了每次单击按钮时从我现有的 Main.cs(WinForm 窗口)中显示 MainWindow.xaml 的问题。我首先尝试了 Application.Run(new MainWindow()); 但是失败得很惨,所以我尝试了传统的

MainWindow MainWpf = new MainWindow();
MainWpf.Show();

我也尝试过类似...

MainWpf.btn_num_1.Content = "3"; (A button inside the xaml window)

我还尝试通过 XAML 窗口内的按钮控制我的 WinForm 窗口槽,一切正常。

现在,我的问题是。这应该可以轻松简单地工作吗?

4

1 回答 1

1

您可以使用简单的适配器在 WinForms 应用程序中嵌入 WPF 控件或在 WPF 应用程序中嵌入 WinForms 控件。由于这种固有的对称性,您可以构建混合应用程序,混合来自其他平台的控件。Michael Sorens 给出了 WPF / WinForms 互操作性的实用指南

https://www.simple-talk.com/dotnet/.net-framework/mixing-wpf-and-winforms/

于 2013-10-19T19:23:26.977 回答