zoukankan      html  css  js  c++  java
  • 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属性呈现一个矩形外观。

  • 相关阅读:
    大数据量分表时 两个表查询比较快的方式
    开启SQL Server执行占用时间显示和逻辑读取次数显示
    【转】SQL Server海量数据库的索引、查询优化及分页算法
    Exchange无法发送邮件 未找到匹配的连接器来路由外部收件人解决办法
    HTML介绍&常用的标签
    关于HTML文件、JS文件、CSS文件
    python命名空间和作用域
    pymysql
    存储过程、视图、触发器、函数
    多表查询
  • 原文地址:https://www.cnblogs.com/Areas/p/2195077.html
Copyright © 2011-2022 走看看