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个(允许你选同种口味)总共有多少种不同的选法&…

[转]HDFS用户指南(中文版)

目的 本文档可以作为使用Hadoop分布式文件系统用户的起点&#xff0c;无论是将HDFS应用在一个Hadoop集群中还是作为一个单独的分布式文件系统使用。HDFS被设计成可以马上在许多环境中工作起来&#xff0c;那么一些HDFS的运行知识肯定能大大地帮助你对一个集群做配置改进和诊断。…

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

鸽巢原理是非常著名的原理&#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;一块黄铜板上有三根宝石柱。印度…

cross-domain policy file

A cross-domain policy file is an XML document that grants a web client—such as Adobe Flash Player, Adobe Reader, etc.—permission to handle data across multiple domains. When a client hosts content from a particular source domain and that content makes re…

markdown编辑器中数学公式的基本命令

原创链接&#xff1a;https://blog.csdn.net/holdrenminbi/article/details/78229488 常见的Markdown编辑器中数学公式使用 相比于初入Markdown编辑器的小白来说&#xff0c;数学公式的使用是必须要掌握的一门技能。本内容大体的介绍结构如下&#xff1a; 插入公式常用数学运…

Java程序练习-螺旋矩阵

螺旋矩阵时间限制: 1500ms内存限制: 1000kB描述生成一个NxN&#xff08;N>0)的旋转矩阵&#xff0c;N从键盘输入&#xff0c;每4个字符输出一个数字&#xff0c;右对齐&#xff0c;从1开始至NxN&#xff0c;顺时针成螺旋状&#xff0c;例如&#xff1a;输入4则生成1--16的矩…

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

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

Jquery的ajax在IE提交数据乱码解决方法

IE的编码和ff&#xff0c;chrome都不同&#xff0c;ajax提交数据乱码&#xff0c;尤其是中文&#xff0c;解决方法其实很简单首先&#xff0c;保持utf-8编码和post提交数据是必要的。其次将参数用escape编码再发送。比如xxx.aspx?uescape(username) 转载于:https://www.cnblog…

数据结构与算法实战-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算法…

清除error.log、access.log并限制Apache日志文件大小的方法

清除error.log、access.log并限制Apache日志文件大小的方法Apache下的access.log和error.log文件从安装服务器到现在没有动过&#xff0c;今天突然discuz 的MYSQL数据库连接错误&#xff0c;提示2003 错误&#xff0c;检查发现原来是error.log、access.log爆满&#xff0c;文件…

主机关机后第二天就无法开机_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性能优…

微软应提前发布专用于ARM处理器的Windows 8平板电脑系统

首先让我们来看一下理波士顿咨询集团最近做的一个关于平板电脑的调查&#xff0c;调查显示&#xff1a;虽然基于 iOS 的 ipad 非常流行&#xff0c;但是依然有 42% 的被调查者愿意购买可以运行 Windows 应用程序的平板产品&#xff0c;而 Android 平板只被 20% 的人接受&#x…

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

请点击上面 免费关注...中国健康养生堂&#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…