微软于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         } 

运行结果如图所示。

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

在Silverlight中用WebBrowser显示HTML代码

在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

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

  1. php 浏览器 打印控件,JavaScript_JavaScript 实现打印,打印预览,打印设置,WebBrowser是IE内置的浏览器控件 - phpStudy...

    JavaScript 实现打印,打印预览,打印设置 WebBrowser是IE内置的浏览器控件,无需用户下载. 一.WebBrowser控件 二.WebBrowder控件的方法 //打印 WebBro ...

  2. WebBrowser是IE内置的浏览器控件

    WebBrowser是IE内置的浏览器控件.WebBrowser是IE内置的浏览器控件.WebBrowser是IE内置的浏览器控件.重要的事情说三遍,原因是一开始使用的时候就在这踩了坑. WebBro ...

  3. 『ExtJS』表单(一)常用表单控件及内置验证

    几点说明 关于ExtJS的表单,我打算分为三个部分来写 常用表单控件及内置验证 -- 这里主要是JS代码 表单行为与Asp.NET页面的消息回复 -- 这里既有JS代码,与有C#代码,我主要是使用As ...

  4. HK01BS单通道电容式触控芯片IC内置稳压LDO低压复位模块

    HK01BS单通道电容式触控芯片,内置稳压模块/低压复位模块,支持硬件去抖动/环境自适应算法等,有较强的抗干扰性能:可通过引脚配置成多种模式. 泛海微HK01BS 应用电路简单,灵敏度调整范围大,且工 ...

  5. java流控_t-io小教程:tio-http内置的流控功能

    从事互联网应用平台的开发,安全一直是个工作量很大的领域,而流控则属于安全的一部分,为此tio-http特意内置了流控功能,我们来看看tio-http流控的使用步骤 1.实现SessionRateLim ...

  6. 组态王曲线控件读取access_组态王内置温控曲线控件例程说明文档

    1 .功能概述 常规需求:很多工业现场都会要求反映出实际测量值按设定曲线变化的情况.在温 控曲线中,纵轴代表温度值,横轴对应时间的变化,同时将每一个温度采样点显示在曲 线中,另外还提供两个游标,当用户 ...

  7. 手把手教你使用ADB卸载手机内置App软件

    [一.前言] 不知道你们有没有那么一段黑暗时期,刚买个手机,手机上内置一堆app,还卸载不掉,然后每天各种广告,手机一共1G的运行内存,那些流氓app还要再占走一些内存,真是让人欲哭无泪啊,后来我就学 ...

  8. 微信7.0升级后 高德地图在微信内置浏览器定位失败

    此文为博主原创 转载请注明出处 尊重一下笔者的劳动成果 ⑩分感谢 场景:微信7.0 苹果可以获取到定位 安卓获取不到定位 原因:微信升级7.0做了安全限制 导致使用http的定位不能正常使用 解决办法 ...

  9. 基于JxBrowser的浏览器控件封装实现Java Swing的浏览器集成

    基于JxBrowser的浏览器控件封装实现Java Swing的浏览器集成 背景 实现目标 实现代码 运行效果 完整的代码及依赖jar文件下载 背景 进期客户提出在一个Java Swing项目要集成另 ...

最新文章

  1. LeetCode简单题之七进制数
  2. 周礼栋:成熟的AI不再只是谈“颠覆”!
  3. Exchange 2010 OAB下载问题排错error 0x80200049
  4. 网站优化两大方面谁都不能忽视!
  5. 第二篇T语言实例开发(版本5.3),福彩3D摇号器
  6. Socket 实例之透析java,C#的互操作
  7. 洛克菲勒的逆商:如何在逆境中转换思维走向成功
  8. 如何用c++画图_画图教室 | 绘制Mapping第一步:美团搜索火锅串串香...认真的!...
  9. 废柴日记之中秋特辑:那些年我们一直分不清楚的近义词们①
  10. linux c libxml2的使用
  11. ad10搜索快捷键_ad快捷键有哪些 ad快捷键汇总
  12. 服务器系统如用pe和做镜像,PE如何使用?
  13. 情人节限定,cmd批处理浪漫表白
  14. maya表情blendshape_引用 【Maya】角色表情绑定-BlendShape的使用技巧
  15. HDU 4826 双向DP
  16. ES06# Filebeat采集原理与监控指标梳理
  17. Typora设置标题自动标号
  18. 任意四面体的外接球/三维空间不共面四点确定唯一球面(附完整代码)
  19. DTI数据TBSS组间统计对比设计矩阵
  20. 通过MERL100计算Blender Disney BRDF参数

热门文章

  1. [react] 举例说明如何在React创建一个事件
  2. javascript学习系列(19):数组中的Array.from方法
  3. 前端学习(3146):react-hello-react之getBeforeUpdate
  4. 前端学习(3115):react-hello-初始化state
  5. [html] 请使用canvas画一个椭圆
  6. [css] 举例说明with属性的fill-available有什么应用场景
  7. 前端学习(2528):一个简单的vue app
  8. 前端学习(2447):数据筛选处理
  9. 前端学习(2042)vue之电商管理系统电商系统之优化生成打包报告
  10. 前端学习(1560):ng-class颜色切换