從今天開發始,我們又開始新的征程,接下來的課程我們要熟悉一下啟動器和選取器,其實二者是一樣的,沒有根本的區別,啟動器是有返回結果的,如開啟搜尋應用程式進行搜尋,而選取器是有返回內容的,如選擇一張照片。
那麼,啟動器和選取器是啥玩意兒呢?其實我們可以很簡單去理解,說白了,就是使用系內建的組件或應用程式。對的,就是這樣,我說過,有時候很多概念只是名字上嚇人罷了,實際用起來是非常簡單的,比如這個啟動器和選取器就是了。
到底是不是很簡單,實踐一下就知道了,本系列教程叫“輕鬆入門”,既然稱得上是輕鬆,痛苦的事情不會叫大家去做,而MS一向注重使用者體驗,不會讓大家痛苦的。
先來總結一下,使用啟動器和選取器的方法是一樣的,都是以下幾步,不過選取器因為有返回內容,因此會多一步。
一、執行個體化組件,就是new一個;
二、設定相關參數或屬性,比如你要打電話,你總得要設定一個號碼吧,不然你打個鳥啊;
三、顯示應用組件,既然調用了系統程式,讓使用者操作,當然要Show出來;
四、(可選)處理返回資料,這是選取器才有。
今天先講第一個組件,BingMapsDirectionsTask,就是啟動Bing地圖對行車路線進行定位搜尋,是啊,像導航系統吧?
有兩種方法來使用該啟動器,一是通過開始和結束標籤,就是從哪裡到哪裡,如從武漢到上海,那麼開始標籤為Wuhan,結束標籤為Shanghai;另一種方法是通開始和結束位置,如經度,緯度等。
首先,我們示範一下簡單的,用標籤來導航。
介面很簡單了,相信通過前面的學習,大家都知道怎麼弄了,只要能輸入開始和結束標籤即。
下面是後台C#代碼:
using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Net;<br />using System.Windows;<br />using System.Windows.Controls;<br />using System.Windows.Documents;<br />using System.Windows.Input;<br />using System.Windows.Media;<br />using System.Windows.Media.Animation;<br />using System.Windows.Shapes;<br />using Microsoft.Phone.Controls;<br />using Microsoft.Phone.Tasks;</p><p>namespace LauncherSample<br />{<br /> public partial class MapByLabel : PhoneApplicationPage<br /> {<br /> public MapByLabel()<br /> {<br /> InitializeComponent();<br /> }</p><p> private void button1_Click(object sender, RoutedEventArgs e)<br /> {<br /> BingMapsDirectionsTask map = new BingMapsDirectionsTask();<br /> map.Start = new LabeledMapLocation { Label = txtLabelStart.Text };<br /> map.End = new LabeledMapLocation { Label = txtLabelEnd.Text };<br /> map.Show();<br /> }<br /> }<br />}
記得引入Microsoft.Phone.Tasks空間,所有的啟動器和選取器都在裡面。
好接下來,我們用能過經度和緯度來定位的方法。
首先要添加一個引用,在項目中右擊“引用”,添加引用,然後選擇System.Device,確定。
接著做好介面,同上需要開始的經度緯度,以及結束位置的經緯度。
然後就是代碼。
using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Net;<br />using System.Windows;<br />using System.Windows.Controls;<br />using System.Windows.Documents;<br />using System.Windows.Input;<br />using System.Windows.Media;<br />using System.Windows.Media.Animation;<br />using System.Windows.Shapes;<br />using Microsoft.Phone.Controls;<br />// 引入以下命名空間<br />using Microsoft.Phone.Tasks;<br />using System.Device.Location;</p><p>namespace LauncherSample<br />{<br /> public partial class BingMapSample : PhoneApplicationPage<br /> {<br /> public BingMapSample()<br /> {<br /> InitializeComponent();<br /> }</p><p> private void button1_Click(object sender, RoutedEventArgs e)<br /> {<br /> BingMapsDirectionsTask bt = new BingMapsDirectionsTask();<br /> // 開始位置<br /> LabeledMapLocation locStart = new LabeledMapLocation();<br /> locStart.Location = new GeoCoordinate(Convert.ToDouble(txtLatitudeStart.Text), Convert.ToDouble(txtLongitudeStart.Text));<br /> // 結束位置<br /> LabeledMapLocation locEnd = new LabeledMapLocation();<br /> locEnd.Location = new GeoCoordinate(Convert.ToDouble(txtLatitudeEnd.Text), Convert.ToDouble(txtLongitudeEnd.Text));<br /> // 設定屬性<br /> bt.Start = locStart;<br /> bt.End = locEnd;<br /> // 顯示啟動器<br /> bt.Show();<br /> }<br /> }<br />}