从另一个WPF表单打开一个新的WPF表单

时间:2011-02-11 10:08:28

标签: c# wpf winforms forms

首先,我有一个带有Windows窗体的项目,该窗体引用了另一个带有WPF窗体的项目。 windows表单有一个elementhost,其中child是另一个项目中的WPF文档之一。

现在,在这个WPF文档中,我希望有一个按钮,点击一下即可打开另一个wpf表单。作为一个新的独立WPF表单,作为模态或其他。

我不能,在按钮点击事件上,说

WPFform2 WPFform2=new WPFform2();<br>
WPFform2.Show();

......正如网上许多其他线程所暗示的那样,因为show方法不存在。

我的解决方案不允许某种类型的调用更改主Form的elementhost,因此这对我来说不是一个选项。

我的所有WPF表单都来自UserControl:

public partial class WPFform1: UserControl

1 个答案:

答案 0 :(得分:10)

表单必须从Window派生,才能使用Show()方法。

只需创建一个新窗口,其中只包含您要显示的表单并在其上调用Show。或者将控件的基类更改为Window(您必须在XAML和后面的代码中重写它),没有什么应该真正改变,Window支持大多数UserControl的功能