技术开发 频道

无处可逃!Silverlight实现BingMap定位

  二、观察运行时快照

  现在,再次运行示例程序,你会看到如下图所示的快照。

1

  图1. 美国飞机场完整列表(其位置完全显示于地图之上:以绿色小旗标识)。

  之后,当你进一步放大显示并选择某一个特定的机场(例如Las Vegas机场)时,这个特定地理的信息将得到进一步的放大。

1

  图2. 当你选择Las Vegas机场时地图焦点自动切换到机场并进行放大显示。

  三、启动浏览器外执行功能

  至此,一个基本的支持Bing Maps的Silverlight应用程序已经能够完整运行了。从现在开始,我们要使其支持浏览器外(Out Of Browser)运行功能。如果你观察应用程序的布局,你会注意到右上角有一个“Install”按钮。该按钮将会把应用程序安装在本地计算机上。这样一来,我们可以在不考虑本机安全策略的情况下消费RSS回馈并从中获得所需的机场的现状信息。

  为此,打开工程的属性对话框并切换到Silverlight选项卡,勾选“Enable application running out of the browser”。然后,点击“Out-Of-Browser Settings”按钮,在对应的子对话框中勾选“Require elevated trust When running outside the browser”选项。

1

  图3. 把Silverlight应用程序配置成以Out of Browser方式运行。

  现在,把Silverlight应用程序配置成以Out of Browser方式运行。关闭工程属性对话框,并切换到文件MainPage.xaml,并且添加Install按钮相关的Click事件处理器btnInstall_Click。

<Button Content = "Install" x:="" Name = "btnInstall" Height = "25" Click = "btnInstall_Click" />

   现在,打开文件MainPage.xaml.cs并定位到btnInstall_Click方法,添加如下代码:

private void btnInstall_Click(object sender, RoutedEventArgs e)
  {
        
if (Application.Current.InstallState != InstallState.Installed)
        Application.Current.Install();
  }

   以上是检查应用程序是否已经安装否则执行OOB安装的典型的Silverlight代码,在此不赘述。现在,你可以再次运行系统来观察程序运行时的快照。

  四、获取飞机场RSS状态信息

  现在,应用程序已经能够在浏览器外运行。接下来,我们将访问网站http://www.airportfact.com/提供的RSS回馈信息并用之检索全美国飞机场当前状态信息。

  首先,我们要编写一个方法ReplaceHTMLChars来修整一下原始返回的RSS回馈信息。

private string ReplaceHTMLChars(string str)
  {
        StringBuilder sb
= new StringBuilder(str);
        sb.Replace(
"\n", string.Empty);
        sb.Replace(
"<b>", string.Empty);
        sb.Replace(
"</b>", string.Empty);
        sb.Replace(
"<strong>", string.Empty);
        sb.Replace(
"</strong>", string.Empty);
        sb.Replace(
"<small>", string.Empty);
        sb.Replace(
"</small>", string.Empty);
        sb.Replace(
"<br />", "\n");
        sb.Replace(
"<br>", "\n");
        sb.Replace(
"<p>", "\n");
        sb.Replace(
"/", "-");
        sb.Replace(
"</p>", string.Empty);
        return sb.ToString();
  }

  

0
相关文章