Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我找到使用WPF和WinForms的方法了吗?_C#_.net_Wpf_Winforms_Xaml - Fatal编程技术网

C# 我找到使用WPF和WinForms的方法了吗?

C# 我找到使用WPF和WinForms的方法了吗?,c#,.net,wpf,winforms,xaml,C#,.net,Wpf,Winforms,Xaml,好的,基本上我只是做了一些傻事,做了一些实验。我想出了一个想法,尝试将WPF和WinForms混合在一起,这个想法的原因是我已经/发现了一些我想在已经存在的WinForms项目中使用的东西 我首先尝试从WPF项目导入.xaml文件,但失败得很惨。它以BlaBla.xaml.cs的形式导入了它们,但没有成功。接下来,我查看了“添加>新建项…”中的“WPF用户控件(XAML)”文件,但这不是我想要的。我想在两个窗口中工作,一个在WPF中,一个在WinForms中,在同一个项目中,在同一个“.exe”

好的,基本上我只是做了一些傻事,做了一些实验。我想出了一个想法,尝试将WPF和WinForms混合在一起,这个想法的原因是我已经/发现了一些我想在已经存在的WinForms项目中使用的东西

我首先尝试从WPF项目导入.xaml文件,但失败得很惨。它以BlaBla.xaml.cs的形式导入了它们,但没有成功。接下来,我查看了“添加>新建项…”中的“WPF用户控件(XAML)”文件,但这不是我想要的。我想在两个窗口中工作,一个在WPF中,一个在WinForms中,在同一个项目中,在同一个“.exe”中

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

然后出现了一个问题,即每次单击按钮都会从现有的Main.cs(WinForm窗口)显示MainWindow.xaml。我第一次尝试了Application.Run(newmainwindow());但是失败得很惨,所以我尝试了传统的方法

MainWindow MainWpf = new MainWindow();
MainWpf.Show();
我也试过像

MainWpf.btn_num_1.Content = "3"; (A button inside the xaml window)
我还试图通过XAML窗口中的按钮控制WinForm窗口,一切正常


现在,我的问题是。这样做是否简单易行?

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


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


总之,是的。发明轮子只是为了展示一辆汽车,这不是很烦人吗一句话中的可能重复,是的。发明轮子只是为了展示一辆汽车,这不是很烦人吗可能重复的