手把手教您如何在Siliverlight嵌入Flash
创始人
2024-06-09 07:00:24
0

我们将研究的是Siliverlight嵌入Flash、HTML和PDF文件的方法,在网络上也能查到Siliverlight嵌入Flash的方法,但是很复杂。本文将介绍如何在Siliverlight嵌入Flash等多媒体文件。

最近在研究怎样将html内容显示在Silverlight中的方法,于是上网查阅了相关资料,发现在Silverlight中实现嵌入html的步骤还是比较繁琐的。本人向来不愿意把事情复杂化,于是经过一番精心搜索,最终在Divelements上发现了HtmlHost这款小巧的组件。通过它的帮助,在Silverlight中嵌入HTML、Flash和PDF文件等,就显得易如反掌了。

HtmlHost

网站:http://www.divelements.co.uk/silverlight/tools.aspx

下载:http://www.divelements.co.uk/silverlight/SilverlightTools.1.0.1.zip

接着,就对该组件进行介绍并且通过实际范例讲述该组件的应用。

1、基本特性

组件所在命名空间:

Divelements.SilverlightTools

组件常用属性:

SourceUri:显示在该组件中的内容的URI。

SourceHtml:用该组件显示的超文本内容。

Document:显示在该组件中的内容的HTML。

组件常用事件:

DocumentReady:当在该组件中的内容的HTML加载完毕后触发该事件。

2、实例讲解

注意:该组件需在windowless模式下才能正常运行。因此,首先要对服务端文件夹下的SilverlightClientTestPage.aspx文件或SilverlightClientTestPage.html文件做如下修改:(绿字粗体部分为新添加的内容)

  1.  id="form1" runat="server" style="height:100%"> 
  2.      id="silverlightControlHost"> 
  3.          data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 
  4.            name="source" value="ClientBin/SilverlightClient.xap"/> 
  5.            name="onError" value="onSilverlightError" /> 
  6.            name="background" value="white" /> 
  7.            name="minRuntimeVersion" value="3.0.40624.0" /> 
  8.            name="autoUpgrade" value="true" /> 
  9.            name="windowless" value="true" /> 
  10.            href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"> 
  11.                src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/> 
  12.            
  13.          id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px">
 
  •      
  • 接着,将需要嵌入的Flash文件及PDF文件放置在服务端文件夹的根目录下。

    右击SilverlightClient文件夹下的References,引入Divelements.SilverlightTools命名空间。按Ctrl+Shift+B编译。

    然后,在SilverlightClient文件夹下新建一个Silverlight UserControl,将其命名为ControlHtmlHost.xaml。该文件内容如下:

    1.  x:Class="SilverlightClient.ControlHtmlHost" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    2. xmlns:divtools="clr-namespace:Divelements.SilverlightTools;assembly=Divelements.SilverlightTools" 
    3.     Width="900" Height="530"> 
    4.      x:Name="LayoutRoot" Background="White"> 
    5.          Name="htmlHost"/> 
    6.      
    7.  

    以下是MainPage文件的内容:

    MainPage.xaml文件代码:

    1.  x:Class="SilverlightClient.MainPage"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    2.     xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"          
    3. xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"   
    4.     mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"> 
    5.    x:Name="LayoutRoot"> 
    6.          
    7.              
    8.              Orientation="Horizontal" Background="WhiteSmoke"> 
    9.                  x:Name="myHTML" Content="HTML内容" FontSize="14"/> 
    10.                  x:Name="myFlash" Content="Flash" FontSize="14"/> 
    11.                  x:Name="myPDF" Content="PDF文档" FontSize="14"/> 
    12.              
    13.              x:Name="Container"/> 
    14.          
    15.      
    16.  

    MainPage.xaml.cs文件代码:

    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Net;  
    5. using System.Windows;  
    6. using System.Windows.Controls;  
    7. using System.Windows.Documents;  
    8. using System.Windows.Input;  
    9. using System.Windows.Media;  
    10. using System.Windows.Media.Animation;  
    11. using System.Windows.Shapes;  
    12. using Divelements.SilverlightTools;  
    13. namespace SilverlightClient  
    14. {  
    15.     public partial class MainPage : UserControl  
    16.     {  
    17.         public MainPage()  
    18.         {  
    19.             InitializeComponent();  
    20.             //注册事件触发处理  
    21.             this.Loaded += new RoutedEventHandler(MainPage_Loaded);  
    22.             this.myHTML.Click += new RoutedEventHandler(myHTML_Click);  
    23.             this.myFlash.Click += new RoutedEventHandler(myFlash_Click);  
    24.             this.myPDF.Click += new RoutedEventHandler(myPDF_Click);  
    25.         }  
    26.         void MainPage_Loaded(object sender, RoutedEventArgs e)  
    27.         {  
    28.             GetRichContent("http://cn.bing.com", UriKind.Absolute);  
    29.         }  
    30.         void myPDF_Click(object sender, RoutedEventArgs e)  
    31.         {  
    32.             GetRichContent("/test.pdf",UriKind.Relative);  
    33.         }  
    34.         void myFlash_Click(object sender, RoutedEventArgs e)  
    35.         {  
    36.             GetRichContent("/clock.swf", UriKind.Relative);  
    37.         }  
    38.         void myHTML_Click(object sender, RoutedEventArgs e)  
    39.         {  
    40.             GetRichContent("http://cn.bing.com", UriKind.Absolute);  
    41.         }  
    42.         //获取Rich Content  
    43.         void GetRichContent(string uri,UriKind uk)  
    44.         {  
    45.             Container.Children.Clear();  
    46.             ControlHtmlHost chtml = new ControlHtmlHost();  
    47.             HtmlHost hh = chtml.FindName("htmlHost"as HtmlHost;  
    48.             hh.SourceUri = new Uri(uri, uk);  
    49.             Container.Children.Add(chtml);  
    50.         }  
    51.     }  

    最终效果图:

    最终效果图

    原文标题:在Silverlight中嵌入HTML、Flash和PDF文件

    链接:http://www.cnblogs.com/Kinglee/archive/2009/10/20/1587113.html

    【编辑推荐】

    1. Office 2010将使用Silverlight改善用户体验
    2. 微软.NET平台主管谈Silverlight企业级开发
    3. Flash与Silverlight多领域实测对比
    4. 微软宣称Silverlight装机量超过三亿
    5. 图解Silverlight 3的7个新功能

    相关内容

    热门资讯

    如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
    如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
    施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
    20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
    德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
    为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
    《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
    2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...