wpf中嵌入windowsmediaplayer

wpf中嵌入windowsmediaplayer

2023年7月19日发(作者:)

WPF 中嵌入Windows Media Player

上一篇通过MediaElement 控件在WPF 4 中制作了简单的媒体播放器。本篇将直接把Windows Media Player 嵌入WPF 中实现同样的效果。起初创建该实例是基于.Net

Framework 4.0 完成后编译顺利通过,但F5 时出现了问题。提示无法加载,调试了许久也没搞出个明堂。最后转用.Net 3.5 问题解决,难道是4.0 不支持?感兴趣的朋友可下载代码进一步研究。 创建项目 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 文件及、WindowsFormsIntegration 加入项目。 在XAML

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

x:Class="ndow"

xmlns="/winfx/2006/xaml/presentation"

xmlns:x="/winfx/2006/xaml"

xmlns:mediaControl="clr-namespace:AxWMPLib;assembly="

Title="WPF Media Player" Height="450"

Width="520" Background="#FF554D4D">

<ces>

<Style x:Key="btnStyle" TargetType="Button">

… …

</Style> </ces>

<StackPanel HorizontalAlignment="Center"

Margin="10">

<Border BorderThickness="3" Background="Black">

… …

<WindowsFormsHost Height="340" Width="450">

<mediaControl:AxWindowsMediaPlayer

x:Name="wpfMediaPlayer"/>

</WindowsFormsHost>

</Border>

<Button Content="Open File" Click="openFile_Click"

Margin="10"

Width="80" Style="{StaticResource

btnStyle}"/>

</StackPanel>

</Window>

通过Windows API Code Pack 为“Open File” 按键添加点击事件,默认打开Sample Video 文件夹,选择视频文件后自动播放。

private void openFile_Click(object sender, RoutedEventArgs e)

{

ShellContainer selectedFolder = null;

selectedFolder = Videos as

ShellContainer;

CommonOpenFileDialog cfd = new

CommonOpenFileDialog();

lDirectoryShellContainer = selectedFolder;

ReadOnly = true;

(new CommonFileDialogFilter("WMV

Files", "*.wmv"));

(new CommonFileDialogFilter("AVI

Files", "*.avi"));

(new CommonFileDialogFilter("MP3

Files", "*.mp3"));

if (alog() == )

{

= me;

}

}

源代码下载 上一篇通过MediaElement 控件在WPF 4

中制作了简单的媒体播放器。本篇将直接把Windows Media

Player 嵌入WPF 中实现同样的效果。起初创建该实例是基于.Net Framework 4.0 完成后编译顺利通过,但F5 时出现了问题。提示无法加载,调试了许久也没搞出个明堂。最后转用.Net 3.5 问题解决,难道是4.0 不支持?感兴趣的朋友可下载代码进一步研究。 创建项目 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 文件及、WindowsFormsIntegration 加入项目。 在XAML 中加入AxWMPLib 命名空间,并将上篇MediaElement 替换为AxWindowsMediaPlayer 控件,注意此处是将WinForm 控件嵌入WPF 程序,所以要将AxWindowsMediaPlayer 控件放到<WindowsFormsHost>标签中。 <Window

x:Class="ndow"

xmlns="/winfx/2006/xaml/presentation"

xmlns:x="/winfx/2006/xaml"

xmlns:mediaControl="clr-namespace:AxWMPLib;assembly="

Title="WPF Media Player" Height="450"

Width="520" Background="#FF554D4D">

<ces>

<Style x:Key="btnStyle" TargetType="Button">

… …

</Style>

</ces>

<StackPanel HorizontalAlignment="Center" Margin="10">

<Border BorderThickness="3" Background="Black">

… …

<WindowsFormsHost Height="340" Width="450">

<mediaControl:AxWindowsMediaPlayer

x:Name="wpfMediaPlayer"/>

</WindowsFormsHost>

</Border>

<Button Content="Open File" Click="openFile_Click"

Margin="10"

Width="80" Style="{StaticResource

btnStyle}"/>

</StackPanel>

</Window>

通过Windows API Code Pack 为“Open File” 按键添加点击事件,默认打开Sample Video 文件夹,选择视频文件后自动播放。

private void openFile_Click(object sender,

RoutedEventArgs e)

{ ShellContainer selectedFolder = null;

selectedFolder = Videos as

ShellContainer;

CommonOpenFileDialog cfd = new

CommonOpenFileDialog();

lDirectoryShellContainer = selectedFolder;

ReadOnly = true;

(new CommonFileDialogFilter("WMV

Files", "*.wmv"));

(new CommonFileDialogFilter("AVI

Files", "*.avi"));

(new CommonFileDialogFilter("MP3

Files", "*.mp3"));

if (alog() == )

{

= me;

}

}

源代码下载

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689723423a281203.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信