4.添加對Html DOM對象的動態訪問
我們在Page類中添加兩個dynamic類型的對象doc和win,分別表示當前頁面和窗口,修改後Page類如下 :
public partial class Page : UserControl
{
// 添加的代碼
dynamic doc = HtmlPage.Document.AsDynamic();
dynamic win = HtmlPage.Window.AsDynamic();
//…
}
然後,我們修改Page類的函數btnSearch_Click(),當用戶點擊”Get All”按鈕後,更加用戶搜索的 內容,修改窗口的標題。
void btnSearch_Click(object sender, RoutedEventArgs e)
{
doc.Title = "Pictures of " + txtTag.Text;
lstPictures.ItemsSource = Source.LoadItems();
}
5.添加Virtual Earth JScript控件
打開解決方案中的測試頁StartPage.htm,在<title>標簽的前面添加如下Jave Script代碼,引 用Virtual Earth控件:
<script type="text/Javascript" src="http://dev.virtualearth.Net/mapcontrol/mapcontrol.ashx?v=6.1"/>
然後,在<body>標簽中添加如下代碼,定義地圖控件的位置和大小:
<div id='myMap' style="position:absolute; top:40px; left:200px; width:550px; height:400px;"/>
通過簡單的兩步,我們就完成了對測試頁面的修改。接下來的工作就是通過C#訪問和控制Virtual Earth控件了。
6.用C#代碼控制Virtual Earth控件
在Page類中添加如下代碼控制Virtual Earth控件,以實現獲取地圖,添加Pin的功能:
dynamic map = null;
void GetMap()
{
map = win.New.VEMap("myMap");
map.LoadMap();
}
void AddPin(Item item)
{
dynamic loc = win.New.VELatLong(item.Latitude, item.Longitude);
var pin = map.AddPushpin(loc);
pin.SetTitle(item.Title);
pin.SetDescription(item.Description);
map.SetCenterAndZoom(loc, 7);
}