网上查了,没有好的答案。这里,把自己得到的结论写一下。照例,还是简洁一些,不写废话。
一、WPF 内嵌 WinForm 页面。
1、在工具栏,所有 WFP控件中有一个:WindowsFormsHost
用这个控件,有一个Child 属性,将WinForm 控件赋给这个Child 即可。
2、效果丑:
查看 winform 的 启动代码,main函数里有一个:
Application.EnableVisualStyles();
因此,在Wpf 的启动函数里,也加上这句话,用来启用 Winform 控件的视觉效果。
二、Winform 内嵌一个 WPF 页面
1、类似,在工具栏,WPF 互操作性有:ElementHost,
这个控件有一个Child属性,类型是UIElement,可以将 WPF 控件元素赋给它。
2、效果丑。
一般情况下,效果是一致的。但是由于Wpf 做的用户控件中使用了DevExpress 的控件,导致显示和设计时不同。
需要设置控件的主题,Theme
引用dll:DevExpress.Xpf.Core.dll
命名空间:DevExpress.Xpf.Core
类型:ThemeManager
使用方法:ThemeManager.SetTheme(uiElement,Theme.Default);
WinForm 内用WPF | Wpf 内用Winfrom | |
控件 | ElementHost | WindowsFormsHost |
属性 | Child | Child |
视觉效果 | ThemeManager.SetTheme(uiElement,Theme.Default); | Application.EnableVisualStyles(); |