风云的银光志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         }
运行结果如图所示。
 
运行后你可以发现HTML代码没有出现在WebBrowser控件之中,并且显示 image,这是提示用户这个Silverlight应用程序的HTML部分不可见,这是因为Silverlight客户端应用程序的安全性关系,让WebBrowser能正常运行必须基于Silverlight的OutofBrowser(脱离浏览器Silverlight应用程序),所以我们要把这个Silverlight应用程序配置为支持OutofBrowser的Silverlight项目 image ,在应用程序上通过右键将这个应用程序安装到用户计算机后,在桌面上运行这个应用程序,这时正确的结果就显示出来了,如图所示。
在Silverlight中用WebBrowser显示一个网页
WebBrowser控件包含两个重要方法,分别为NavigateToString和Navigate,它们分别是显示一段HTML在WebBrowser中和显示一个网页在WebBrowser之中。
使用WebBrowser控件需要了解两点重要因素,一是WebBrowser必须运行在OutofBrowser模式之中,二是WebBrowser只能通过Width和Height属性呈现一个矩形外观。


本文转自dotfun 51CTO博客,原文链接:http://blog.51cto.com/dotfun/285896
相关文章
|
1月前
|
Web App开发 Java 测试技术
《手把手教你》系列基础篇之(四)-java+ selenium自动化测试- 启动三大浏览器(下)基于Maven(详细教程)
【2月更文挑战第13天】《手把手教你》系列基础篇之(四)-java+ selenium自动化测试- 启动三大浏览器(下)基于Maven(详细教程) 上一篇文章,宏哥已经在搭建的java项目环境中实践了,今天就在基于maven项目的环境中给小伙伴们 或者童鞋们演示一下。
66 1
|
1月前
|
Web App开发 Java 测试技术
《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程)
【2月更文挑战第12天】《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程) 前边宏哥已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动三大浏览器。按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome。因此宏哥这里主要介绍一下如何启动这三大浏览器即可,其他浏览器类似的方法,照猫画虎就可以了。
44 1
|
8月前
|
Web App开发 编解码 前端开发
html&css&浏览器相关面试题大全(四)
html&css&浏览器相关面试题大全
|
6月前
|
Web App开发 移动开发 JavaScript
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
174 0
|
8天前
|
Java 测试技术 定位技术
《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)
【4月更文挑战第15天】本文介绍了如何使用Selenium进行浏览器窗口切换以操作不同页面元素。首先,获取浏览器窗口句柄有两种方法:获取所有窗口句柄的集合和获取当前窗口句柄。然后,通过`switchTo().window()`方法切换到目标窗口句柄。在项目实战部分,给出了一个示例,展示了在百度首页、新闻页面和地图页面之间切换并输入文字的操作。最后,文章还探讨了在某些情况下可能出现的问题,并提供了一个简单的本地HTML页面示例来演示窗口切换的正确操作。
36 0
|
30天前
|
数据安全/隐私保护
HTML表单(Form)常用控件
HTML表单(Form)常用控件。
15 1
|
6月前
|
Web App开发 搜索推荐 NoSQL
如何搭建一个集成导航与在线工具的个性化浏览器私有书签(附详细搭建教程)
在这个信息爆炸的时代,我们都希望拥有一个能够轻松解决多端、多浏览器的收藏和笔记同步问题的神奇工具。Mtab书签正是为此而设计的顶级应用。它将基础导航、记事本、在线小工具和多端同步集于一身,为用户提供了更便利的网络浏览体验,并解决了多端同步的烦恼。
170 0
如何搭建一个集成导航与在线工具的个性化浏览器私有书签(附详细搭建教程)
|
7月前
|
Web App开发 安全
【教程】谷歌浏览器移到其他盘之后,本地网页代码无法用谷歌浏览器打开的解决办法
【教程】谷歌浏览器移到其他盘之后,本地网页代码无法用谷歌浏览器打开的解决办法
|
7月前
|
Web App开发
[教程]谷歌浏览器只能安装在C盘,教大家如何设置才能装在D盘
[教程]谷歌浏览器只能安装在C盘,教大家如何设置才能装在D盘
|
3月前
|
Web App开发 前端开发 JavaScript
新的 HTML 控件登陆 Safari
# html # 网络开发者
25 1