我的主要项目是在WPF下,在我的解决方案中我有:
我想做这个工作:如果点击按钮,我会在MainWindow中显示Form1与 MDI
完全相同答案 0 :(得分:2)
感谢您在这种情况下帮助我,您的答案真的对我有帮助 但我发现了我的目标: 我只是想使用Windows窗体(form1)到wpf windows(而不是我的窗体控件) 在我的表单代码中,我只是将form1的继承更改为Usercontrol而不是像这样的
public partial class Form1: UserControl
{
/// my code ...
}
因此,我可以在我的windosformshost中使用此usercontrol,因为我的表单现在是usercontrol(很好的工作)
但我有另一个问题,我的控件没有视觉效果,因为我在msdn中搜索,我从这个链接visual_Problem 得到答案,答案在enable_visual
我的意思是,在winformshot主机我的Windows窗体之前(ofcource我的usercontrol)我应该写这段代码:
System.Windows.Forms.Application.EnableVisualStyles();
感谢您的评论。 最诚挚的问候,Hothreeyn。
答案 1 :(得分:1)
使用WindowsFormsHost元素放置Windows窗体控件 在您的WPF元素或页面中。
要在Windows窗体控件或窗体中托管WPF元素,请使用 ElementHost控件。
要在WPF元素中托管Windows窗体控件,必须分配 Windows窗体控件到子属性。
我认为您应该在WPF中处理MDI布局,然后在WPF子窗口中放置WindowsFormsHost控件,一旦创建了Windows窗体控件,就将其指定为WindowsFormsHost的子窗口。
答案 2 :(得分:0)
请参阅MSDN Documentation以了解WPF中的WindowsFormsHost
控件。文档底部有一个示例,说明如何将WinForms控件集成到WPF中。您需要做的只是将MaskedTextBox
更改为您的控件:Form1
。
答案 3 :(得分:0)
据我所知,你无法让整个WinForm与WPF互操作。您可以通过WindowsFormHost将WinForm控件放在WPF表面上,但不能放置表单。
如果您可以将WinForm表单的所有内容打包到WinForm UserControl中,那么应该可以将其解除。
答案 4 :(得分:0)
使用WindowsFormHost
控件,可以在WPF中使用Windows窗体控件。
你可以参考这个link。
答案 5 :(得分:0)
WPF没有对MDI的本机支持,你可以使用这个wpfmdi.codeplex.com或更复杂的这个chronoswpf.codeplex.com