在开发Web应用程序时,了解用户使用的浏览器信息是非常重要的。这可以帮助针对不同的浏览器优化用户体验。虽然JavaScript是检测浏览器信息的常用工具,但在Silverlight应用程序中,可以通过HtmlPage.BrowserInformation属性来实现这一功能。本文将通过一个简单的例子,介绍如何使用这个属性来获取浏览器的详细信息。
HtmlPage.BrowserInformation是一个位于System.Windows.Browser命名空间中的内置类。它提供了一个静态属性BrowserInformation,该属性返回一个BrowserInformation对象,包含以下属性:
BrowserInformation类是一个密封类,它返回浏览器的名称、产品名称、产品版本、浏览器版本、平台、用户代理以及浏览器是否启用了Cookie。
接下来,将通过代码实现来演示如何使用这个属性。首先,在页面的代码后台创建两个字符串属性,分别命名为Platform和BrowserInformation。以下是参考代码:
public string Platform
{
get
{
return (string)GetValue(PlatformProperty);
}
set { SetValue(PlatformProperty, value); }
}
public static readonly DependencyProperty PlatformProperty =
DependencyProperty.Register(
"Platform",
typeof(string),
typeof(MainPage),
new PropertyMetadata(string.Empty));
public string BrowserInformation
{
get
{
return (string)GetValue(BrowserInformationProperty);
}
set { SetValue(BrowserInformationProperty, value); }
}
public static readonly DependencyProperty BrowserInformationProperty =
DependencyProperty.Register(
"BrowserInformation",
typeof(string),
typeof(MainPage),
new PropertyMetadata(string.Empty));
然后,从HtmlPage.BrowserInformation属性中提取相应的属性值,并填充到这些属性中。以下是演示代码:
var browserInfo = HtmlPage.BrowserInformation;
BrowserInformation =
"You are using " + browserInfo.Name +
" (Product Name: " + browserInfo.ProductName +
" - " + browserInfo.ProductVersion +
") Version: " +
browserInfo.BrowserVersion;
Platform =
"You are on " + browserInfo.Platform +
" platform and using User Agent: " +
browserInfo.UserAgent;
接下来,需要设计XAML页面,使其包含两个TextBlock,分别绑定到上述属性。以下是XAML代码示例:
<StackPanel x:Name="LayoutRoot" Background="White" Width="400" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="{Binding BrowserInformation, ElementName=userControl}" TextWrapping="Wrap" Margin="5" />
<TextBlock Text="{Binding Platform, ElementName=userControl}" TextWrapping="Wrap" Margin="5" />
</StackPanel>
以上就是代码实现。