Flash教程:在Silverlight中嵌入HTML、Flash和PDF文件
小标 2018-03-08 来源 :网络 阅读 614 评论 0

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

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

 

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

 

1、基本特性

 

组件所在命名空间:

Divelements.SilverlightTools

 

组件常用属性:

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

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

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

 

组件常用事件:

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

 

 

2、实例讲解

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

 

<form id="form1" runat="server" style="height:100%">
    <div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
          <param name="source" value="ClientBin/SilverlightClient.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="3.0.40624.0" />
          <param name="autoUpgrade" value="true" />
          <param name="windowless" value="true" />
          <a href="//go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none">
              <img src="//go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
          </a>
        </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
    </form>

 

接着,将需要嵌入的Flash文件及PDF文件放置在服务端文件夹的根目录下。

 

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

 

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

<UserControl x:Class="SilverlightClient.ControlHtmlHost"
    xmlns="//schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="//schemas.microsoft.com/winfx/2006/xaml"
xmlns:divtools="clr-namespace:Divelements.SilverlightTools;assembly=Divelements.SilverlightTools"
    Width="900" Height="530">
    <Grid x:Name="LayoutRoot" Background="White">
        <divtools:HtmlHost Name="htmlHost"/>
    </Grid>
</UserControl>

 

以下是MainPage文件的内容:

MainPage.xaml文件代码:

<UserControl x:Class="SilverlightClient.MainPage"
    xmlns="//schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="//schemas.microsoft.com/winfx/2006/xaml"
    xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"       
    xmlns:d="//schemas.microsoft.com/expression/blend/2008" xmlns:mc="//schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
  <Grid x:Name="LayoutRoot">
        <StackPanel>
            <!--导航栏-->
            <StackPanel Orientation="Horizontal" Background="WhiteSmoke">
                <Button x:Name="myHTML" Content="HTML内容" FontSize="14"/>
                <Button x:Name="myFlash" Content="Flash" FontSize="14"/>
                <Button x:Name="myPDF" Content="PDF文档" FontSize="14"/>
            </StackPanel>
            <Grid x:Name="Container"/>
        </StackPanel>
    </Grid>
</UserControl>
 
MainPage.xaml.cs文件代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Divelements.SilverlightTools;
 
namespace SilverlightClient
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            //注册事件触发处理
            this.Loaded += new RoutedEventHandler(MainPage_Loaded);
            this.myHTML.Click += new RoutedEventHandler(myHTML_Click);
            this.myFlash.Click += new RoutedEventHandler(myFlash_Click);
            this.myPDF.Click += new RoutedEventHandler(myPDF_Click);
        }
 
        void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            GetRichContent("//cn.bing.com", UriKind.Absolute);
        }
 
        void myPDF_Click(object sender, RoutedEventArgs e)
        {
            GetRichContent("/test.pdf",UriKind.Relative);
        }
 
        void myFlash_Click(object sender, RoutedEventArgs e)
        {
            GetRichContent("/clock.swf", UriKind.Relative);
        }
 
        void myHTML_Click(object sender, RoutedEventArgs e)
        {
            GetRichContent("//cn.bing.com", UriKind.Absolute);
        }
 
        //获取Rich Content
        void GetRichContent(string uri,UriKind uk)
        {
            Container.Children.Clear();
            ControlHtmlHost chtml = new ControlHtmlHost();
            HtmlHost hh = chtml.FindName("htmlHost") as HtmlHost;
            hh.SourceUri = new Uri(uri, uk);
            Container.Children.Add(chtml);
        }
    }
}

最终效果图:

Flash教程:在Silverlight中嵌入HTML、Flash和PDF文件

 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标常用软件Flash频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程