Silverlight4.0教程之WebBrowser控件(Silverlight内置HTML浏览器控件)

微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面:

开发工具增强:Visual Studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#代码全方位智能感知功能、XAML的样式应用更为易用等。

摄像头与MIC硬件支持:可以用极少量的代码实现启用用户本机的WebCam和Mic,并可进行本地录制。

报表打印支持:报表打印问题在Silverlight4中得到的较好的解决。

更强大的基础类控件(RichTextBox、DataGrid增强版):富文本控件RichTextBox和具有可粘贴、排序功能的DataGrid被加入。

WCF增强:终于支持TCP通讯,比较HTTP提升3-5倍,限于4502-4534端口。

兼容性增强:对Google的Chrome浏览器的支持。

MEF支持:MEF全称为Managed Extensibility Framework,译为“托管扩展框架”,支持创建大型复杂的应用程序。

运行速度提升:启动速度和渲染速度较前个版本提升约2倍左右。

DRM增强:支持PlayReady,可以对视频和音频的播放进行的保护,补充了对H.264的DRM保护。

其它增强:本地文件读写、鼠标右键事件支持、剪粘板支持。

 

 

WebBrowser是Silverlight4版本中加入的一个运行在Silverlight应用程序内部的浏览器控件,这是一个非常有用的控件,当我们Silverlight应用程序需要在某个位置显示一些HTML内容或是一个网址网页的时候,WebBrowser就派上用场了。

通过在Silverlight应用程序嵌入WebBrowser控件的方法可以弥补Silverlight应用程序不能显示HTML网页的不足,下面我们来通过一个Silverlight版本的“浏览器”来介绍如何在Silverlight4应用程序使用WebBrowser控件,这个示例分别介绍了如何使用WebBrowser来显示一段固定的HTML代码和一个URL网页。

首先完成浏览器的XAML布局。

XAML:

1      <Grid x:Name="LayoutRoot" Background="White"> 
2          <Grid.RowDefinitions> 
3              <RowDefinition Height="35"/> 
4              <RowDefinition Height="40"/> 
5              <RowDefinition Height="*"/> 
6          </Grid.RowDefinitions> 
7          <Grid.ColumnDefinitions> 
8              <ColumnDefinition Width="*"/> 
9          </Grid.ColumnDefinitions> 
10         <Grid Grid.Row="1" Grid.Column="0"> 
11             <Grid.RowDefinitions> 
12                 <RowDefinition Height="35"/> 
13             </Grid.RowDefinitions> 
14             <Grid.ColumnDefinitions> 
15                 <ColumnDefinition Width="80"/> 
16                 <ColumnDefinition Width="*"/> 
17                 <ColumnDefinition Width="60"/> 
18             </Grid.ColumnDefinitions> 
19             <!--浏览器功能栏--> 
20             <TextBlock Height="20" FontWeight="Bold" Text="输入URL"/> 
21             <TextBox Grid.Row="0" Grid.Column="1"  
22                     x:Name="tbUrl" Height="25" FontSize="14"/> 
23             <Button x:Name="btnGo" Click="btnGo_Click"  
24                 Content="GO" FontWeight="Bold" Grid.Row="0" Grid.Column="2" 
25                 Width="50" Height="30"/> 
26         </Grid> 
27         <!--浏览器标题--> 
28         <Border Background="Yellow"  
29             Grid.Row="0" Grid.Column="0" > 
30             <TextBlock Grid.Row="0" Grid.Column="0"  
31                 Width="300" Height="25" FontWeight="Bold"  
32                 FontSize="16" 
33                 Text="欢迎使用Silverlight浏览器 V1.0"/> 
34         </Border> 
35         <!--WebBrowser控件--> 
36         <WebBrowser x:Name="wb1" Grid.Row="2" Grid.Column="0"/> 
37     </Grid> 

C#:

1          public WebBrowserSample() 
2          { 
3              InitializeComponent(); 
4              this.Loaded += new RoutedEventHandler(WebBrowserSample_Loaded); 
5          } 
6  
7          void WebBrowserSample_Loaded(object sender, RoutedEventArgs e) 
8          { 
9              SetHTML(); 
10         } 
11 
12         private void SetHTML() 
13         { 
14             System.Text.StringBuilder sb = new System.Text.StringBuilder(@" 
15             <a href=http://blog.csdn.net/dotfun target=_blank> 
16             大家好,这是一段HTML代码,欢迎访问我的博客</a><h1>这是Silverlight4 
17             的WebBrowser控件显示的HTML代码!</h1>"); 
18             //WebBrowser控件应用HTML代码 
19             wb1.NavigateToString(sb.ToString()); 
20         } 
21 
22         private void btnGo_Click(object sender, RoutedEventArgs e) 
23         { 
24             if (tbUrl.Text.Trim() != string.Empty) 
25             { 
26                 //使用WebBrowser控件打开一个URL 
27                 wb1.Navigate(new Uri(tbUrl.Text.Trim(), UriKind.RelativeOrAbsolute)); 
28             } 
29             else 
30             { 
31                 MessageBox.Show("请先输入URL!"); 
32             } 
33         } 

运行结果如图所示。

image

运行后你可以发现HTML代码没有出现在WebBrowser控件之中,并且显示image,这是提示用户这个Silverlight应用程序的HTML部分不可见,这是因为Silverlight客户端应用程序的安全性关系,让WebBrowser能正常运行必须基于Silverlight的OutofBrowser(脱离浏览器Silverlight应用程序),所以我们要把这个Silverlight应用程序配置为支持OutofBrowser的Silverlight项目image ,在应用程序上通过右键将这个应用程序安装到用户计算机后,在桌面上运行这个应用程序,这时正确的结果就显示出来了,如图所示。

image

          在Silverlight中用WebBrowser显示HTML代码

image

              在Silverlight中用WebBrowser显示一个网页

WebBrowser控件包含两个重要方法,分别为NavigateToString和Navigate,它们分别是显示一段HTML在WebBrowser中和显示一个网页在WebBrowser之中。

使用WebBrowser控件需要了解两点重要因素,一是WebBrowser必须运行在OutofBrowser模式之中,二是WebBrowser只能通过Width和Height属性呈现一个矩形外观。

转载于:https://www.cnblogs.com/Areas/archive/2011/09/29/2195077.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【离散数学中的数据结构与算法】八 排列与组合四

上一篇文章学习了组合&#xff08;不可重复选取的&#xff09;。今天来将可重复选取的组合学习一下。 文章目录1 可重复选取的组合-可重组合2 总结1 可重复选取的组合-可重组合 现在有4种口味的棒棒糖&#xff0c;你要从中选3个(允许你选同种口味)总共有多少种不同的选法&…

【离散数学中的数据结构与算法】九 鸽巢原理

鸽巢原理是非常著名的原理&#xff0c;生活正用的也很多。 文章目录1 简单鸽巢原理的应用2 定理&#xff08;一般性鸽巢原理&#xff09;2.1 应用3 总结1 简单鸽巢原理的应用 定理&#xff08;鸽巢原理&#xff09; 若有 n 个鸽巢&#xff0c; n1 个鸽子&#xff0c;则至少有…

【离散数学中的数据结构与算法】十 汉诺塔

汉诺塔也是经典的算法问题 文章目录1 汉诺塔问题1 汉诺塔问题 法国数学家卢卡斯&#xff08;Edouard Lucas&#xff09;在1883年提出了一个数学游戏&#xff1a; 传说在世界中心贝拿勒斯&#xff08;印度北部&#xff09;的圣庙里&#xff0c;一块黄铜板上有三根宝石柱。印度…

【离散数学中的数据结构与算法】十一 错排问题

错排问题比较难&#xff0c;但是也是经典算法问题 文章目录1 错排问题2 总结1 错排问题 家中阳台有10盆不同的花&#xff0c;为保持新鲜感&#xff0c;希望每天重新摆放&#xff0c;使得每盆花都不在第一天放的位置。那么最多可以保持多少天每天摆法都不同&#xff1f; 这是一…

数据结构与算法实战-C++实现

学习交流加&#xff08;可免费帮忙下载CSDN资源&#xff09;&#xff1a;个人微信&#xff1a; liu1126137994学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff1a; 780902027 推荐一个数据结构实战课程&#xff0c;学习…

ie6 7下 relative absolute无法冲破的等级问题解决办法

最近做垂直市场遇见这样一个问题&#xff0c;在标准浏览器下如图一&#xff0c;所有地区列表正常显示&#xff0c;以下拉形式浮在最上层&#xff0c;可是在IE6、7下如图二就会被下面的图片所遮盖&#xff0c;z-index设置多大都不起作用。图一 &#xff08;标准浏览器 和 IE8&am…

使用说明 思迅收银系统_使用自助收银系统让消费者自助结算更便捷高效?

很多超市的人工收银台&#xff0c;在客流的高峰期&#xff0c;如节假日、活动促销时间段、周末等&#xff0c;结账慢且客流量大&#xff0c;容易出现顾客排长队等待结账的情况。这样会有结账慢、收银员收银压力大的影响&#xff0c;进而影响顾客的购物体验。在超市使用自助收银…

【Linux进程、线程、任务调度】四多核下负载均衡 中断负载均衡,RPS软中断负载均衡 cgroups与CPU资源分群分配 Linux为什么不是硬实时 preempt-rt对Linux实时性的改造

学习交流加 个人qq&#xff1a; 1126137994个人微信&#xff1a; liu1126137994学习交流资源分享qq群&#xff1a; 962535112 上一篇文章&#xff08;点击链接&#xff1a;点击链接阅读上一篇文章&#xff09;讲了&#xff1a; CPU/IO消耗型进程吞吐率 vs. 响应SCHED_FIFO算法…

主机关机后第二天就无法开机_iphone没电自动关机后无法充电和开机的解决办法!(亲身经历)...

问题记录时间: 2020年5月21日地点: 北京市朝阳区XXX写字楼​ 今天下午工作太忙,突然发现我的iphone8(ios13)还剩下1%的电量,赶紧去找充电器,没找到!抓紧借!回来的时候为时已晚,我的小8已经电量耗尽关机了.插上源电尝试开机,我心里想着千万不要出问题,结果还是怕什么来什么,手机…

推荐学习-Linux性能优化实战

学习交流加&#xff08;可免费帮忙下载CSDN资源&#xff09;&#xff1a;个人微信&#xff1a; liu1126137994学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff1a; 780902027 推荐一个学习资源&#xff1a;Linux性能优…

创业冲突的五种解决方法是_失眠原因不同,中医五种调理方法解决问题!

请点击上面 免费关注...中国健康养生堂&#xff0c;关注国人健康&#xff0c;每天与你分享健康资讯、保健常识、心理健康、中医养生、健康饮食、养生食疗、健康知识、生活常识、两性健康&#xff0c;远离亚健康&#xff0c;健康是一种心态&#xff01;懂点健康养生&#xff0c;…

C++从入门到进阶近100本书推荐电子书pdf

学习交流加&#xff08;可免费帮忙下载CSDN资源&#xff09;&#xff1a; 个人微信&#xff1a; liu1126137994 学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112 学习交流资源分享qq群2&#xff08;已满&#xff09;&#xff1a; 780902027 学习…

HTML5学习笔记

HTML5可以做的事情 1. 制作时尚的表单 2. 构建实用的HTML5框架 3. 开发丰富多彩的游戏 4. 以更直观的方式让数据可视化呈现 5. HTML5的未来 – 惊艳的HTML5示例和实验 HTML的新特点 新特性 HTML5 中的一些有趣的新特性&#xff1a; 用于绘画的 canvas 元素 用于媒介回放的 v…

特别慢_这款“爱豆”很特别,它带你重温旧时光,体验慢生活的时代

说到浪漫之都的法国巴黎&#xff0c;就不得不让人想到卢浮宫、凡尔赛宫、凯旋门等古老建筑&#xff0c;当然还有让全世界震惊的埃菲尔铁塔&#xff0c;这些名胜古迹无一不让法国人民感到骄傲。如果问及法国巴黎有着华人家乡味道的&#xff0c;就不得不说到一间不起眼的老式港式…

MarkDown编辑器中数学公式与符号-LaTeX 各种数学命令,符号

函数、符号及特殊字符 声调 语法效果语法效果语法效果\bar{x}\acute{\eta}\check{\alpha}\grave{\eta}\breve{a}\ddot{y}\dot{x}\hat{\alpha}\tilde{\iota}函数 语法效果语法效果语法效果\sin\theta\cos\theta\tan\theta\arcsin\frac{L}{r}\arccos\frac{T}{r}\arctan\frac{L}{T…

spark中dataframe解析_Spark-SQL

fe缺点不方便添加新的优化策略线程安全问题Spark SQL支持三种语言javaScalapythonDataFrame大规模数据化结构能历、提高了运算能力从sql到dataFrame的转化&#xff0c;支持sql查询RDD是分布式的java对象的集合&#xff0c;对象颞部结构不可知dataframe以rdd为基础的分布式数据集…

【算法设计与分析】01 算法涉及的研究内容概述

文章目录1 算法的研究内容2 算法设计的两个例子2.1 调度问题2.2 算法设计的步骤2.3 投资问题3 总结在学习算法涉及与分析的内容之前&#xff0c;先了解一下算法所涉及的几个大块的内容&#xff0c;方便以后学习。1 算法的研究内容 算法的研究内容主要包括三点&#xff1a; 计…

CSDN博客图片水印|自定义水印|去除水印

参考博文1&#xff1a;https://blog.csdn.net/stereohomology/article/details/54561782 参考博文2&#xff1a;https://blog.csdn.net/u011479200/article/details/81026798 CSDN改版后&#xff0c;原来的修改方法不行了~~ 在 CSDN 中&#xff0c;上传图片时&#xff0c;会默…

【算法设计与分析】02 货郎问题与计算复杂性理论

什么是NP系列问题&#xff1f;今天来看看这些问题。 文章目录1 货郎问题2 0-1背包问题3 什么是NP-hard问题&#xff08;NP难问题&#xff09;1 货郎问题 问题&#xff1a;有n个城市&#xff0c;已知任何两个城市之间的距离&#xff0c;求一条每个城市恰好经过1次的回路&#xf…