WPF 和 WinForm 页面互嵌入,效果丑

网上查了,没有好的答案。这里,把自己得到的结论写一下。照例,还是简洁一些,不写废话。

一、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();

你可能感兴趣的:(wpf)