微軟于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