如何在WPF中嵌入Winform控件

如何在WPF中嵌入Winform控件,第1张

1. 新建一个基于.Net Framework 3.5 的WPF 应用程序项目:WPFWMP。

2. 在工程中新建Windows Forms Control Library 项目:WMPControlLibrary。

创建WMP 控件

下面要锋唤在WMPControlLibrary 中创建Windows Media Player 控件,在项目中加入Windows Media Player COM。

在左侧工具栏中若没有Windows Media Player 控件的话,可以右键General 选择Choose Items,在COM 组件列表中勾选Windows Media Player 选项。

将Windows Media Player 控件拖入设计窗口,并将Dock 设置为Fill 填充控件。

F6 编译项目后会生成以下三个DLL 文件,银亩凯这就是我们稍后将要在WPF 中用到的WMP 控件库。

嵌入WMP 控件

回到WPF 项目在前篇文章的基础上,保留其中“Open File” 按键和Button 样式。将上面三个DLL 文件及System.Windows.Forms、WindowsFormsIntegration 加入项目。

在XAML 中加入AxWMPLib 命名空间,并将上篇MediaElement 替换为AxWindowsMediaPlayer 控件,注意此耐搭处是将WinForm 控件嵌入WPF 程序,所以要将AxWindowsMediaPlayer 控件放到<WindowsFormsHost>标签中。

在 C# WPF 中嵌入 EXE 应用程序的方法有多种。一种方法是使用 Process 类并调用悉前其 Start 方法来启动 EXE 应用程序,然后使用 WindowInteropHelper 类来将 EXE 应用程序窗口嵌入 WPF 窗口中。例如:

请注意,这只是一种可能的方法,并不一定适用于所有桥陆纳情况。如果您敏没需要更详细的帮助,请提供更多信息,例如您的目标和限制。

在做WPF项目时,我经常用DEV的控件,其中GridControl的功能蛮源雀斗强大的,打开岁清一个带GridControl的窗体特别慢,需要3秒钟左右。

一开雹磨始我以为是渲染数据慢,后来我什么数据也不加载,就放一个空的GridControl,也需姚3秒钟左右。

而旁边的微软自带的DataGrid则是秒开。

查了很多资料,都说是WPF第一次加载控件,VisualTree需要加载资源,所以很慢,

第二次就会快很多。这个devexpress也解决不了。只能变通的选种方式解决。

就是在程序启动前,显示一个SplashScreen,将GridControl放在SplashScreen中,这样,之后,我们需要显示带有GridControl的窗体时,就会快很多。

经过测试,现在打开dev的窗体,一秒钟不到。

确实是有效果的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8226379.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存