DeepEarth中的拖放行为(DragBehavior)
///?地圖拖放行為
///?</summary>
public?enum?DragBehavior
{
????///?<summary>
????///?鼠標(biāo)成手型圖標(biāo)點(diǎn)在地圖上拖放,地圖的呈現(xiàn)隨同鼠標(biāo)的拖動進(jìn)行移動并定位于鼠標(biāo)釋放的位置。
????///?</summary>
????Pan,
????///?<summary>
????///在地圖上通過選擇繪制出一個(gè)選框圖形,當(dāng)鼠標(biāo)釋放選擇的時(shí)候?qū)⒌貓D放大級別顯示。
????///?</summary>
????Select,
????///?<summary>
????///?在地圖上繪制圖形。
????///?</summary>
????Draw
}
?
在DeepEarth中的拖放行為默認(rèn)被定義為鼠標(biāo)拖放行為,當(dāng)用戶在所呈現(xiàn)的地圖上操作地圖的時(shí)候,鼠標(biāo)成手型圖標(biāo)點(diǎn)在地圖上拖放地圖,當(dāng)鼠標(biāo)釋放拖動并將地圖定位于鼠標(biāo)釋放拖動的地圖位置。默認(rèn)的拖放行為在源代碼中被定義為如下:
//地圖拖放行為private?DragBehavior?_DragMode?=?DragBehavior.Pan;
?
上面對地圖的拖放行為進(jìn)行了簡單的描述,下面我們來看看如何在開發(fā)中使用地圖的拖放行為,我們可以在界面上放置一個(gè)Button來做個(gè)實(shí)驗(yàn),通過點(diǎn)擊按鈕實(shí)現(xiàn)切換地圖拖放行為的功能:
代碼 ///?<summary>///?改變地圖的拖放行為
///?</summary>
///?<param?name="sender"></param>
///?<param?name="e"></param>
private?void?btnDragBehavior_Click(object?sender,?RoutedEventArgs?e)
{
????//判斷當(dāng)前地圖的拖放模式--實(shí)現(xiàn)兩種模式之間切換
????switch?(mapInstance.DragMode)
????{
????????case?Map.DragBehavior.Pan:
????????????mapInstance.DragMode?=?Map.DragBehavior.Select;
????????????ToolTipService.SetToolTip(btnDragBehavior,?"切換到選擇放大模式");
????????????btnDragBehavior.Content?=?"選擇";
????????????break;
????????case?Map.DragBehavior.Select:
????????????mapInstance.DragMode?=?Map.DragBehavior.Pan;
????????????ToolTipService.SetToolTip(btnDragBehavior,?"切換到拖放平移模式");
????????????btnDragBehavior.Content?=?"拖放";
????????????break;
????}
}
?
?
上面代碼塊思路非常清晰,通過當(dāng)前地圖的拖放行為進(jìn)行判斷,交替設(shè)置地圖的拖放行為,編譯程序后運(yùn)行效果如下圖所示:
按扭放在地圖中間不太好看,我們可以通過上一篇《探索DeepEarth的內(nèi)置控件》中所介紹的方法將拖放模式的切換觸發(fā)功能按扭移置到功能導(dǎo)航菜單上去,這樣整體看上去的感覺就大不一樣了。
?
?
這里改變了下界面布局,將原來直接適用按鈕顯示文字的方式更改為適用圖片的方式,?通過不同的拖放行為來操作地圖,此功能的切換實(shí)現(xiàn)非常方便、簡單,但卻非常適用。我們可以通過擴(kuò)展地圖的拖放行為實(shí)現(xiàn)很多功能,比如在地圖上插標(biāo)、選點(diǎn)、框選等復(fù)雜的操作,本文暫時(shí)不做介紹,在后續(xù)相關(guān)文章里在詳細(xì)介紹如何實(shí)現(xiàn)這些功能。
?
版權(quán)說明
? 本文屬原創(chuàng)文章,歡迎轉(zhuǎn)載且注明文章出處,其版權(quán)歸作者和博客園共有。??
? 作??????者:Beniao
?文章出處:http://beniao.cnblogs.com/? 或? http://www.cnblogs.com/
?
轉(zhuǎn)載于:https://www.cnblogs.com/beniao/archive/2010/01/27/1657265.html
總結(jié)
以上是生活随笔為你收集整理的DeepEarth中的拖放行为(DragBehavior)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 类成员函数指针的语法
- 下一篇: Silverlight3 导航属性,En