首先,我有一个带有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
答案 0 :(得分:10)
表单必须从Window
派生,才能使用Show()
方法。
只需创建一个新窗口,其中只包含您要显示的表单并在其上调用Show。或者将控件的基类更改为Window
(您必须在XAML和后面的代码中重写它),没有什么应该真正改变,Window
支持大多数UserControl
的功能