微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端
用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面:
开发工具增强:Visual
studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#
代码全方位智能感知
功能、XAML的样式应用更为易用等。
摄像头与MIC硬件
支持:可以用极少量的
代码实现启用
用户本机的WebCam和Mic,并可进行本地录制。
报表打印
支持:报表打印问题在Silverlight4中得到的较好的
解决。
更强大的基础类控件(RichText
Box、DataGrid增强版):富文本控件RichText
Box和具有可粘贴、排序
功能的DataGrid被加入。
兼容性增强:对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.RowDe
Finitions>
3
<RowDe
Finition Height="35"/>
4
<RowDe
Finition Height="40"/>
5
<RowDe
Finition Height="*"/>
6
</Grid.RowDe
Finitions>
7
<Grid.
columnDe
Finitions>
8
<
columnDe
Finition Width="*"/>
9
</Grid.
columnDe
Finitions>
10
<Grid Grid.Row="1" Grid.
column="0">
11
<Grid.RowDe
Finitions>
12
<RowDe
Finition Height="35"/>
13
</Grid.RowDe
Finitions>
14
<Grid.
columnDe
Finitions>
15
<
columnDe
Finition Width="80"/>
16
<
columnDe
Finition Width="*"/>
17
<
columnDe
Finition Width="60"/>
18
</Grid.
columnDe
Finitions>
19
<!--浏览器
功能栏-->
20
<TextBlock Height="20" FontWeight="Bold" Text="输入URL"/>
21
<Text
Box 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
thi
s.Loaded += new RoutedEventHandler(WebBrowserSample_Loaded
);
5
}
6
7
void WebBrowserSample_Loaded(ob
ject sender,RoutedEventArgs
E)
8
{
9
SetHTML(
);
10
}
11
12
private void SetHTML()
13
{
14
Sy
stem.Text.
StringBuilder sb = new Sy
stem.Text.
StringBuilder(@"
15
<a href=
http://blog.csdn.net/dotfun target=_blank>
16
大家好,这是一段
HTML代码,欢迎访问我的@L_
450_54@</a><h1>这是Silverlight4
17
的WebBrowser控件
显示的
HTML代码!</h1>"
);
18
//WebBrowser控件应用
HTML代码
19
wb1.NavigateTo
String(sb.To
String()
);
20
}
21
22
private void btnGo_Click(ob
ject sender,RoutedEventArgs
E)
23
{
24
if (tbUr
l.Text.Trim()
!= String.Empty)
25
{
26
//使用WebBrowser控件打开
一个URL
27
wb1.Navigate(new Uri(tbUr
l.Text.Trim(),UriKind.RelativeOrAbsolut
E));
28
}
29
else
30
{
31
message
Box.Show("请先输入URL!"
);
32
}
33
}
运行结果如图所示。
运行后你可以发现
HTML代码没有出现在WebBrowser控件之中,并且
显示
![风云的银光志Silverlight4.0教程之WebBrowser控件(Silverlight内置HTML浏览器控件) 风云的银光志Silverlight4.0教程之WebBrowser控件(Silverlight内置HTML浏览器控件)](http://img.voidcn.com/vcimg/static/loading.png)
,这是
提示用户这个Silverlight应用程序的HTML部分
不可见,这是
因为Silverlight客户端应用程序的安全性关系,让WebBrowser能正常运行必须基于Silverlight的OutofBrowser(脱离浏览器Silverlight应用程序),所以我们要把这个Silverlight应用程序配置为
支持OutofBrowser的Silverlight项目
![风云的银光志Silverlight4.0教程之WebBrowser控件(Silverlight内置HTML浏览器控件) 风云的银光志Silverlight4.0教程之WebBrowser控件(Silverlight内置HTML浏览器控件)](http://img.voidcn.com/vcimg/static/loading.png)
,在应用程序上通过右键将这个应用程序安装到
用户计算机后,在桌面上运行这个应用程序,这时正确的结果就
显示出来了,如图所示。
在Silverlight中用WebBrowser
显示一个网页
WebBrowser控件包含两个重要
方法,分别为NavigateTo
String和Navigate,它们分别是
显示一段HTML在WebBrowser中和
显示一个网页在WebBrowser之中。
使用WebBrowser控件需要了解两点重要因素,一是WebBrowser必须运行在OutofBrowser模式之中,二是WebBrowser
只能通过Width和Height
属性呈现
一个矩形外观。