天天看点

一起谈.NET技术,将Flash 嵌入WPF 程序XAML 方法C# 方法效果图源代码下载

     由于WPF 本身中不支持COM 组件同时也无法加载ActiveX 控件,所以需要借助WinForm 引用ActiveX 控件将Flash 加入其中。首先创建一个WPF 项目(WpfFlash),将Flash 文件(.swf)加入到项目中,并将Copy to Output Directory 设置为"Copy always"。

一起谈.NET技术,将Flash 嵌入WPF 程序XAML 方法C# 方法效果图源代码下载

     在工程中新增一个Windows Forms Control Library 项目(FlashControlLibrary),利用该控件库加载Flash ActiveX。

一起谈.NET技术,将Flash 嵌入WPF 程序XAML 方法C# 方法效果图源代码下载
一起谈.NET技术,将Flash 嵌入WPF 程序XAML 方法C# 方法效果图源代码下载

     在FlashControlLibrary 项目工具栏(Toolbox)中点击鼠标右键,选择"Choose Items..."。在COM Components 标签中选择"Shockwave Flash Object",点击确定。

一起谈.NET技术,将Flash 嵌入WPF 程序XAML 方法C# 方法效果图源代码下载

     此时在工具栏中已经可以看到刚添加的Shockwave Flash Object 控件了。将控件拖入设计窗口,调整好控件尺寸使其满足Flash 的尺寸大小,对FlashControlLibrary 项目进行编译,并生成DLL 文件。

一起谈.NET技术,将Flash 嵌入WPF 程序XAML 方法C# 方法效果图源代码下载
一起谈.NET技术,将Flash 嵌入WPF 程序XAML 方法C# 方法效果图源代码下载

     返回WpfFlash 项目将上面编译的AxInterop.ShockwaveFlashObjects.dll 加入References,并添加System.Windows.Forms 和WindowsFormsIntegration,便于WinForm 程序在WPF 中交互使用。

一起谈.NET技术,将Flash 嵌入WPF 程序XAML 方法C# 方法效果图源代码下载
一起谈.NET技术,将Flash 嵌入WPF 程序XAML 方法C# 方法效果图源代码下载

     接下来将通过两种方式将Flash 文件加入到WPF,一种侧重于使用XAML 代码实现,另一种则使用C#。可按各自需要选择其一。

     打开MainWindow.xaml,加入命名空间xmlns:f="clr-namespace:AxShockwaveFlashObjects;assembly=AxInterop.ShockwaveFlashObjects"。在<Grid>中加入WindowsFormsHost 用于调用WinForm 程序,并在其中添加AxShockwaveFlash 控件加载Flash 文件。

打开MainWindow.xaml.cs 将Flash 文件加载到flashShow 控件。

使用C# 实现相同的效果,首先将XAML 代码按如下方式修改,在Window 中加入Loaded 事件。

定义FlashLoaded 方法,主要通过WindowsFormsHost和 AxShockwaveFlash 完成Flash 加载操作。

一起谈.NET技术,将Flash 嵌入WPF 程序XAML 方法C# 方法效果图源代码下载

<a href="http://cid-c75f4e27adfe5bbc.office.live.com/self.aspx/GnieTech/WpfFlash.zip">WpfFlash.zip</a>

继续阅读