在WPF中插入flash

方法

1. 建立 WPF Application。

首先,建立一个名为 FlashinWPF 的 WPF Application

image.png

2. 设置 Window 属性。

在 XAML 中修改 Window 的属性,加入 Loaded 事件,设置默认 Grid 的 x:Name 标示为 "FlashGrid" 更改后代码如下:

<Window x:Class="FlashinWPF.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Flash in WPF" Loaded="WindowLoaded" Height="500" Width="600">
    <Grid x:Name="FlashGrid">
    </Grid>
</Window>

3. 建立 Windows Forms Control Library 

WPF Application 作为一个展现层的项目,不能自身插入 COM Component,所以需要借助 Windows Form 引入 ActiveX 控件。

image_1.png

4. 插入 Shockwave Flash Object

在 Toolbox 中点击右键,选择"Choose Items..." 添加 COM Components

image_2.png

Tricky Point: 在 COM Component中还有一个 Macromedia Flash Factory Object 同样链接到C:\Windows\System32\Macromed\Flash\Flash9c.ocx 中,但在这里不要选择这个 Component, 否则会出现“Failed to import the ActiveX control” 可以利用 regsvr32.exe Flash9c.ocx 在命令行中注册 Flash9c.ocx 控件。会出现如下注册成功提示:

image_3.png

5. 创建 Flash Object

添加一个 Shockwave Flash Object 后会自动在 Flash Control 的项目中增加一个名为AxShockwaveFlashObjects 的对象。

在 UserControl1.Designer.cs 中会默认添加 axShockwaveFlash1 对象。

private AxShockwaveFlashObjects.AxShockwaveFlash axShockwaveFlash1;

6. 编译 Flash Control

image_4.png

7. 在 FlashinWPF 中增加 Reference

增加 Flash Control 中编译好的 AxInterop.ShockwaveFlashObjects.dll

image_5.png

增加用于在 Windows Form 中整合 ActiveX 的 DLL

image_6.png

增加 Windows Form DLL

image_7.png

8. 修改 Window 的 Codebehind

Window1.xaml.cs 代码及注释如下

private void WindowLoaded(object sender, RoutedEventArgs e)
 {
     // 创建 host 对象
     System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost(); 

     // 实例化 axShockwaveFlash1
     AxShockwaveFlashObjects.AxShockwaveFlash axShockwaveFlash1 = new AxShockwaveFlashObjects.AxShockwaveFlash(); 

     // 装载.axShockwaveFlash1
     host.Child = axShockwaveFlash1; 

     // 将 host 对象嵌入FlashGrid
     this.FlashGrid.Children.Add(host); 

     // 设置 .swf 文件相对路径
     string swfPath = System.Environment.CurrentDirectory;
     swfPath += @"\sample.swf";
     axShockwaveFlash1.Movie = swfPath;
 } 

9. 添加 .swf 文件

选择 Always Copy to Output Directory 从而应用相对路径通过 WPF Applicaiton 调用 Flash

image_12.png

转载于:https://www.cnblogs.com/doucontorl/archive/2010/12/06/1897453.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值