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控件之中,并且顯示,這是提示用戶這個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浏览器控件)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式笔记(24)---访问者模式(行
- 下一篇: POJ 1797 Heavy Trans