WPF 中嵌入Windows Media Player.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在本文中,我们将探讨如何在WPF(Windows Presentation Foundation)应用程序中嵌入Windows Media Player控件,以便实现多媒体播放功能。这个问题最初在尝试使用.NET Framework 4.0时遇到困难,但在切换到.NET Framework 3.5后得以解决。这可能表明.NET Framework 4.0与Windows Media Player的交互存在一些兼容性问题,值得进一步研究。 **创建项目** 1. 我们需要创建一个新的基于.NET Framework 3.5的WPF应用程序项目,命名为`WPFWMP`。 2. 接下来,创建一个Windows Forms Control Library项目,取名为`WMPControlLibrary`,用于存放Windows Media Player控件。 **创建WMP控件** 在`WMPControlLibrary`项目中,我们需要引入Windows Media Player COM组件: 1. 如果工具栏中没有Windows Media Player控件,可以通过右键点击“General”,选择“Choose Items”,然后在COM组件列表中勾选Windows Media Player。 2. 将Windows Media Player控件拖入设计视图,并设置其Dock属性为Fill,使其填充整个控件区域。 编译`WMPControlLibrary`项目后,会生成三个DLL文件,它们是我们在WPF应用中使用Windows Media Player控件所必需的库。 **嵌入WMP控件** 回到`WPFWMP`项目,保留之前用于“Open File”按钮的代码和样式。然后,我们需要做以下步骤来嵌入WMP控件: 1. 添加之前生成的三个DLL文件,以及`System.Windows.Forms`和`WindowsFormsIntegration`引用到`WPFWMP`项目。 2. 在XAML中引入`AxWMPLib`命名空间,以便使用Windows Media Player控件。 3. 替换MediaElement为AxWindowsMediaPlayer,将其放置在`<WindowsFormsHost>`标签内,因为我们要在WPF程序中嵌入WinForm控件。 这是一个基本的XAML结构示例: ```xml <Window> <!-- ... --> <StackPanel> <!-- ... --> <WindowsFormsHost> <mediaControl:AxWindowsMediaPlayer x:Name="wpfMediaPlayer"/> </WindowsFormsHost> <!-- ... --> </StackPanel> </Window> ``` **实现播放功能** 为了使“Open File”按钮能够打开文件并播放,我们可以使用Windows API Code Pack来处理文件选择,并在选择视频文件后自动播放。例如: ```csharp private void openFile_Click(object sender, RoutedEventArgs e) { Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog(); openFileDialog.DefaultExt = ".wmv"; // 默认扩展名 openFileDialog.Filter = "Video Files|*.wmv;*.mp4;*.avi"; // 过滤视频文件类型 if (openFileDialog.ShowDialog() == true) { wpfMediaPlayer.URL = openFileDialog.FileName; wpfMediaPlayer.Ctlcontrols.play(); // 开始播放 } } ``` 这样,我们就成功地在WPF应用中嵌入了Windows Media Player控件,并实现了基本的文件打开和播放功能。值得注意的是,尽管.NET Framework 4.0在某些情况下可能不支持此操作,但通过切换到.NET Framework 3.5,我们可以避免遇到的问题。如果你对.NET Framework 4.0与Windows Media Player的兼容性有更深入的研究需求,可以继续探索这个方向。
- 粉丝: 87
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于SimPy和贝叶斯优化的流程仿真系统.zip
- (源码)基于Java Web的个人信息管理系统.zip
- (源码)基于C++和OTL4的PostgreSQL数据库连接系统.zip
- (源码)基于ESP32和AWS IoT Core的室内温湿度监测系统.zip
- (源码)基于Arduino的I2C协议交通灯模拟系统.zip
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
- (源码)基于Android的饭店点菜系统.zip
- (源码)基于Android平台的权限管理系统.zip
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip