天天看點

風雲的銀光志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         }

運作結果如圖所示。

在Silverlight中用WebBrowser顯示一個網頁

WebBrowser控件包含兩個重要方法,分别為NavigateToString和Navigate,它們分别是顯示一段HTML在WebBrowser中和顯示一個網頁在WebBrowser之中。

使用WebBrowser控件需要了解兩點重要因素,一是WebBrowser必須運作在OutofBrowser模式之中,二是WebBrowser隻能通過Width和Height屬性呈現一個矩形外觀。

本文轉自dotfun 51CTO部落格,原文連結:http://blog.51cto.com/dotfun/285896

繼續閱讀