天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

將Flash 嵌入WPF 程序

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

Copy

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

New Project

Project

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

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

Object  DLL

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

AxInterop

AddRef
     接下來將通過兩種方式將Flash 文件加入到WPF,一種側重于使用XAML 代碼實現,另一種則使用C#??砂锤髯孕枰x擇其一。

XAML 方法

     打開MainWindow.xaml,加入命名空間xmlns:f="clr-namespace:AxShockwaveFlashObjects;assembly=AxInterop.ShockwaveFlashObjects"。在<Grid>中加入WindowsFormsHost 用于調用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# 實現相同的效果,首先將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技術將Flash 嵌入WPF 程序,轉載需保留來源!

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

主站蜘蛛池模板: 老师小扫货水能么多叫出来 | 国色精品VA在线观看免费视频 | 色欲人妻AAAAAAA无码 | 色多多涩涩屋下载软件 | 啦啦啦 中文 中国 免费 高清在线 | 国产香蕉尹人视频在线 | 日本阿v在线资源无码免费 日本阿v片在线播放免费 | 日本无码专区亚洲麻豆 | 乐乐亚洲精品综合影院 | 小泽玛丽av无码观看 | 国产精品你懂得 | 亚洲欧洲精品A片久久99 | 久久伊人精品青青草原2021 | 国产精品视频免费观看 | 国产亚洲美女在线视频视频 | 内射白嫩少妇超碰 | 久久久精品成人免费看 | 青娱乐极品视觉盛宴国产视频 | 免费A级毛片无码无遮挡内射 | 欧美亚洲另类丝袜自拍动漫 | cctv网站| 国产亚洲综合视频 | 亚洲精品伊人久久久久 | 花蝴蝶在线高清视频观看免费播放 | 69国产精品成人无码视频 | 欧美亚洲另类图片 | 伊人久久大香线蕉综合电影网 | 办公室激情在线观看 | bdsm中国精品调教ch | 农民下乡在线观看3 | 强壮的公次次弄得我高潮韩国电影 | 日韩欧美一区二区三区免费看 | 欧美亚洲国内日韩自拍视频 | 亚洲精品久久区二区三区蜜桃臀 | 天天躁日日躁狠狠躁午夜剧场 | 啊灬啊别停灬用力啊老师 | 99精品视频一区在线视频免费观看 | 国产精品高清视亚洲一区二区 | 男女爽爽无遮挡午夜视频在线观看 | 一级毛片皇帝 宫女 | 性一交一无一伦一精一品 |