将wpf集成到窗口应用程序中

时间:2011-07-28 18:27:52

标签: c# wpf windows winforms

我是wpf应用程序的新手.. 我正在开发窗口应用程序。它有很多模块。其中一个模块在wpf中,它与project分离。所以我想将wpf应用程序集成到窗口应用程序项目中。

4 个答案:

答案 0 :(得分:5)

你的问题不清楚。但是,如果您尝试在WinForms应用程序中托管WPF对象,那么是的,这是可能的。

可以找到一个好的教程here

答案 1 :(得分:1)

假设您的意思是“Windows应用程序”的MDI Winform。以下是步骤:

  1. 创建一个新的Winform。
  2. 添加“WPF互操作性”元素
  3. 将WPF页面添加到WPF互操作元素
  4. 这些步骤仅适用于支持WPF的.NET Framework 3.0或更高版本。

答案 2 :(得分:0)

您需要在MDI应用程序和要托管的WPF组件之间添加互操作层。这是非平凡的

1)确定托管代码和本机代码之间的边界位置。确保你清楚地定义,描绘和尊重这个边界,否则你会痛苦地流下眼泪。这将需要在任何实际场景中使用C ++ / CLI。

我建议创建一个名为“Launcher”的C ++ / CLI ref类来充当跳板。它公开了本机应用程序可以使用的本机API。本机应用程序提供指向MDI窗口和任何其他所需信息的指针。

2)使用WPI子指针和WPF组件上的HwndSource将WPF放入本机窗口。

3)通过HwndSource中的MessageHook提供从MDI-land到WPF-land的窗口消息的适当手动转发。请注意,您将手动处理从WM_WINDOWPOSCHANGED到ID_HELP的所有内容。

祝你好运!

答案 3 :(得分:0)

您可以使用ElementHost将您的wpf控件添加到Windows窗体。将ElementHost控件添加到Windows窗体并将您的wpf控件设置为ElementHost Child属性。

您可以在此处找到更多详细信息 MSDN

ElementHost