一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

將Flash 嵌入WPF 程序

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

Copy

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

New Project

Project

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

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

Object  DLL

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

AxInterop

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

XAML 方法

     打開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>

打開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# 實現(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 方法,主要通過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)載需保留來源!

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

主站蜘蛛池模板: 成人小视频在线观看 | 国产婷婷色一区二区三区 | 美女免费精品高清毛片在线视 | 国产精品大全国产精品 | 久久久久中文字幕 | 色网在线免费观看 | 在线看的黄色网址 | 五月婷婷丁香花 | 国产一区视频在线免费观看 | 樱花aⅴ一区二区三区四区 影音先锋 色天使 | 成年香蕉大黄美女美女 | 国产精品久久免费视频 | 精品国内一区二区三区免费视频 | 色婷婷九月 | 国产v精品成人免费视频71sao | 丁香婷婷激情五月 | 五月天婷色 | 国产男人午夜视频在线观看 | 99久久久精品免费观看国产 | 欧美特级视频 | 综合爱 | 九九精品视频在线 | 欧美美女被日 | 91精品啪国产在线观看免费牛牛 | 久久精品国产无限资源 | 午夜视频免费在线播放 | 亚洲男人的天堂久久香蕉 | 99精品视频看国产啪视频 | 99精品国产闺蜜国产在线闺蜜 | 天天色天天拍 | 99999久久久久久亚洲 | 国产成人综合亚洲 | 国产成人毛片视频不卡在线 | 久久男女 | 国产成人资源 | 2019天天干 | 狠狠色伊人亚洲综合网站l 狠狠色伊人亚洲综合网站色 | 精品91视频| 91精品国产免费自在线观看 | 中文字幕天天躁日日躁狠狠 | 国产欧美亚洲三区久在线观看 |