中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

將Flash 嵌入WPF 程序

     由于WPF 本身中不支持COM 組件同時(shí)也無(wú)法加載ActiveX 控件,所以需要借助WinForm 引用ActiveX 控件將Flash 加入其中。首先創(chuàng)建一個(gè)WPF 項(xiàng)目(WpfFlash),將Flash 文件(.swf)加入到項(xiàng)目中,并將Copy to Output Directory 設(shè)置為"Copy always"。

Copy

     在工程中新增一個(gè)Windows Forms Control Library 項(xiàng)目(FlashControlLibrary),利用該控件庫(kù)加載Flash ActiveX。

New Project

Project

     在FlashControlLibrary 項(xiàng)目工具欄(Toolbox)中點(diǎn)擊鼠標(biāo)右鍵,選擇"Choose Items..."。在COM Components 標(biāo)簽中選擇"Shockwave Flash Object",點(diǎn)擊確定。

AddCom
     此時(shí)在工具欄中已經(jīng)可以看到剛添加的Shockwave Flash Object 控件了。將控件拖入設(shè)計(jì)窗口,調(diào)整好控件尺寸使其滿足Flash 的尺寸大小,對(duì)FlashControlLibrary 項(xiàng)目進(jìn)行編譯,并生成DLL 文件。

Object  DLL

     返回WpfFlash 項(xiàng)目將上面編譯的AxInterop.ShockwaveFlashObjects.dll 加入References,并添加System.Windows.Forms 和WindowsFormsIntegration,便于WinForm 程序在WPF 中交互使用。

AxInterop

AddRef
     接下來(lái)將通過(guò)兩種方式將Flash 文件加入到WPF,一種側(cè)重于使用XAML 代碼實(shí)現(xiàn),另一種則使用C#。可按各自需要選擇其一。

XAML 方法

     打開(kāi)MainWindow.xaml,加入命名空間xmlns:f="clr-namespace:AxShockwaveFlashObjects;assembly=AxInterop.ShockwaveFlashObjects"。在<Grid>中加入WindowsFormsHost 用于調(diào)用WinForm 程序,并在其中添加AxShockwaveFlash 控件加載Flash 文件。

<Window x:Class="WpfFlash.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        xmlns:f="clr-namespace:AxShockwaveFlashObjects;assembly=
                        AxInterop.ShockwaveFlashObjects"
Title="Crab Shooter" Height="540" Width="655"> <Grid> <WindowsFormsHost> <f:AxShockwaveFlash x:Name="flashShow"/> </WindowsFormsHost> </Grid></Window>

打開(kāi)MainWindow.xaml.cs 將Flash 文件加載到flashShow 控件。

using System;using System.Windows;namespace WpfFlash{    public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();            string flashPath = Environment.CurrentDirectory;            flashPath += @"/game.swf";            flashShow.Movie = flashPath;        }    }}

C# 方法

使用C# 實(shí)現(xiàn)相同的效果,首先將XAML 代碼按如下方式修改,在Window 中加入Loaded 事件。

<Window x:Class="WpfFlash.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="Crab Shooter" Loaded="FlashLoaded" Height="540" Width="655">    <Grid x:Name="mainGrid"/></Window>

定義FlashLoaded 方法,主要通過(guò)WindowsFormsHost和 AxShockwaveFlash 完成Flash 加載操作。

using System;using System.Windows;using System.Windows.Forms.Integration;using AxShockwaveFlashObjects;namespace WpfFlash{    public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();        }        private void FlashLoaded(object sender, RoutedEventArgs e)        {            WindowsFormsHost formHost = new WindowsFormsHost();            AxShockwaveFlash axShockwaveFlash = new AxShockwaveFlash();            formHost.Child = axShockwaveFlash;            mainGrid.Children.Add(formHost);            string flashPath = Environment.CurrentDirectory;            flashPath += @"/game.swf";            axShockwaveFlash.Movie = flashPath;        }    }}

效果圖

Game

源代碼下載

WpfFlash.zip

NET技術(shù)將Flash 嵌入WPF 程序,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 99九九久久 | a视频在线 | 97av视频| 美女久久视频 | 欧美人成在线视频 | 一区二区三区在线免费观看视频 | 中文字幕电影在线观看 | 精品国产欧美一区二区 | 亚洲视频一区二区三区 | avhd101在线成人播放 | 亚洲国产精品久久久久久 | 日韩免费视频一区二区 | 日韩欧美视频 | 国产精品免费av | 中文一区二区 | 精品视频一区二区三区在线观看 | www国产成人免费观看视频,深夜成人网 | 波多野结衣中文字幕一区二区三区 | 97av在线 | 色男人天堂av | 男女羞羞在线观看 | 日韩视频在线播放 | 精品在线视频播放 | 国产精品毛片无码 | 成人在线观看免费 | 亚洲精品在线国产 | 综合久久综合久久 | 欧美视频二区 | 国产探花在线观看视频 | 亚洲高清视频在线观看 | 久久精品视频9 | 青青久久 | 日韩国产中文字幕 | 亚洲精品视频在线 | 国产h视频| 91色综合| 日韩av在线不卡 | 国产日韩精品一区 | 四虎影院免费在线 | 国产99久久久国产精品 | 国产欧美日韩精品在线观看 |