【问题标题】:Open a WPF Window from WinForms & link form app with WPF app从 WinForms 打开 WPF 窗口并使用 WPF 应用程序链接表单应用程序
【发布时间】:2013-05-06 20:34:16
【问题描述】:

我正在使用 Visual Studio 2012 并且我正在使用名为 Form1 的 Win Form 应用程序并添加一个名为 wpf Window 的新项目,名为“wpfWin”。我想通过 Form1 中的一个按钮打开 wpfWin,一旦单击它,它就会打开 - 分隔窗口 -。

我已经尝试过weblogs.asp,但我没有找到“WPF 自定义控件库”,一旦我跳过它,就会出现错误。有没有其他办法?!

另外,如何链接两个应用程序,一个在 WinForm 中,另一个在 Wpf 中?!

【问题讨论】:

  • 所以你想要两个完全独立的窗口?还是 Win-forms 窗口上的 WPF 控件?
  • 分离窗口,已编辑

标签: c# wpf winforms hyperlink


【解决方案1】:

Open WPF window in WindowsForm APP 那么您对上述链接教程和问题有疑问吗? “WPF 自定义控件库”是您要在 Win-Forms 应用程序中使用的 WPF 窗口。

只是一个简短的解释,因为它通过问题和教程解释了几次。您将要打开当前正在处理的 win-forms 项目。然后您将要转到解决方案资源管理器并右键单击解决方案,而不是项目,转到“添加”并选择“新建项目”。

在添加新项目中转到 Visual C#,然后转到左侧树中的 Windows。它们应该位于已安装的子菜单中。在主要部分中,您应该看到“WPF 自定义控件库”单击它,然后将其命名为您想要的名称,然后单击确定。

在项目中添加一个 Window(WPF) 控件,该窗口将是您要打开的 WPF 窗口。

然后从 WinForm 中,像这样打开它:

var wpfwindow = new WPFWindow.Window1();
ElementHost.EnableModelessKeyboardInterop(wpfwindow);
wpfwindow.Show();

但请确保您有以下 using 语句:

using System; //Given 
using System.Windows.Forms; //Given
using System.Windows.Forms.Integration; //Not so Given.

您还需要添加一些引用以使其正常工作,这里是您需要添加到 win-forms 的所有列表:

 PresentationCore
 PresentationFramework
 WindowsFormsIntegration
 WindowsBase
 System.Xaml
 YourWpfControlProjectName

您应该使用 VS 中的引用选择器将这些添加到您的 Win-forms 项目中,方法是右键单击解决方案资源管理器中的引用文件夹并添加新引用。所有参考都位于框架选项卡中,没有解决方案选项卡中的 WPF 控件。

【讨论】:

  • 假设我将“WPF 自定义控件库”命名为 Pan 并在 Pan 中添加一个名为 wind 的新 wpf 窗口;所以代码是 > var wpfwindow = new Pan.wind(); ?!
  • 是的。如果您遇到未定义的问题,请检查您的参考资料。
  • 它不起作用,我应该将wpf引用添加到winApp吗?!
  • 是的,至少,我列出的那些,你应该很好。
  • "YourWpfControlProjectName" 你的意思是cs文件!?默认名称 CustomControl1 ?!
【解决方案2】:

尝试在您的项目中引用 windowbase.dll。还要确保“复制本地”属性设置为 true。

【讨论】:

    【解决方案3】:

    检查项目的 .NET Framework 版本也很重要。 您引用的 WPF 应用程序的版本必须与您的根项目相同或更低。 花了我很多时间!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多