.NEt专家博客!
一步一步学Silverlight 2系列(24):与浏览器交互相关辅助方法
上一篇 / 下一篇 2008-04-11 21:11:09 / 个人分类:经典文章
概述
Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。
本文是Silverlight 2与浏览器交互的最后一篇,将介绍相关的辅助类方法。
获取浏览器信息
在Silverlight 2中提供了获取浏览器信息的一个类BrowserInformation,可供我们直接调用,如获取浏览器名称及浏览器版本,是否禁用Cookies等信息。做一个简单的示例,定义XAML如下:
<Gridx:Name="LayoutRoot"Background="#CDFCAE">
8@~RA8SU)sY-az0<Grid.RowDefinitions>
a0?!?/\-r0<RowDefinitionHeight="40"></RowDefinition>
4D*mCa.}~0<RowDefinitionHeight="40"></RowDefinition>ITPUB个人空间W(['ql`
<RowDefinitionHeight="40"></RowDefinition>ITPUB个人空间]{(cJ3o@
<RowDefinitionHeight="40"></RowDefinition>
,FCg(e Eb7n"g&m0<RowDefinitionHeight="140"></RowDefinition>ITPUB个人空间T1n$z+z4uH)I
</Grid.RowDefinitions>
[;u4b"qo Q0<Grid.ColumnDefinitions>
-S#KD Qj-|q!j?0<ColumnDefinitionWidth="300"></ColumnDefinition>
EC0^Vxa[0<ColumnDefinitionWidth="300"></ColumnDefinition>ITPUB个人空间m1|r!y Iwv
</Grid.ColumnDefinitions>
Qv b2E d? wt a0
,Oo-A&Ia2NK*]Xe0<TextBlockText="Name:"Style="{StaticResourcetitle}"
#flX,~bY@(P0Grid.Row="0"Grid.Column="0"></TextBlock>ITPUB个人空间.VTQd#r$S!GG%DP%V
<TextBlockx:Name="Name"Style="{StaticResourcecontent}"ITPUB个人空间|`ov _W
Grid.Row="0"Grid.Column="1"></TextBlock>ITPUB个人空间G v!SJ~2tUI Z7z9v
,S%O3L3k6mbU!S5y)?%{0<TextBlockText="BrowserVersion:"Style="{StaticResourcetitle}"ITPUB个人空间sW)C(hp3w_EQ@
Grid.Row="1"Grid.Column="0"></TextBlock>
F ? D g:cC)?0<TextBlockx:Name="BrowserVersion"Style="{StaticResourcecontent}"
4?(yc Y5lkOVJf K0Grid.Row="1"Grid.Column="1"></TextBlock>ITPUB个人空间l}a&d9Zr E4eN
V ]j!e$O](k3O0<TextBlockText="CookiesEnabled:"Style="{StaticResourcetitle}"
U6e.hN7S%JG0Grid.Row="2"Grid.Column="0"></TextBlock>
y.Y|(nA-_/^6q0<TextBlockx:Name="CookiesEnabled"Style="{StaticResourcecontent}"ITPUB个人空间V+CU(]h9s g
Grid.Row="2"Grid.Column="1"></TextBlock>ITPUB个人空间5U.^h.Sw3yf V,[
ITPUB个人空间M9xO?+IH-@s&jIeh
<TextBlockText="Platform.:"Style="{StaticResourcetitle}"ITPUB个人空间E'N }m RF6f8a7{
Grid.Row="3"Grid.Column="0"></TextBlock>ITPUB个人空间3i,M J:a(g\sC
<TextBlockx:Name="Platform"Style="{StaticResourcecontent}"ITPUB个人空间Z#l:[.{'@+?'^*l&^
Grid.Row="3"Grid.Column="1"></TextBlock>ITPUB个人空间+{3Ze'YN9d i
ITPUB个人空间x _t2K&k8iI"A;~Ib,^
<TextBlockText="UserAgent:"Style="{StaticResourcetitle}"ITPUB个人空间&K1\~,aJ
Grid.Row="4"Grid.Column="0"></TextBlock>ITPUB个人空间 Q Km*f1RT6\8y-k
<TextBlockx:Name="UserAgent"Style="{StaticResourcecontent}"ITPUB个人空间dr|1j_lE)Nvb
Grid.Row="4"Grid.Column="1"TextWrapping="Wrap"></TextBlock>ITPUB个人空间4_,~0Ok+f!];U'?G
</Grid>
在Loaded事件中获取相关信息:
private voidUserControl_Loaded(objectsender,RoutedEventArgse)
&ZSg(H \0{ITPUB个人空间sq5u!C/r
BrowserInformationbrowser =HtmlPage.BrowserInformation;ITPUB个人空间b ]g[]\Y|w;F
&NQ9fi/I0a9q0Name.Text = browser.Name;ITPUB个人空间H ScB [EY.[pl
BrowserVersion.Text = browser.BrowserVersion.ToString();
:DCR[Syv0CookiesEnabled.Text = browser.CookiesEnabled.ToString();
|(dLt)d%}_S0Platform.Text = browser.Platform;ITPUB个人空间3VD"_Z wR
UserAgent.Text = browser.UserAgent;ITPUB个人空间+b*o-c+D6ai:yC6O
}
运行之后,如下图所示: