2014-01-27 56 views
0

當我點擊Bing地圖上的圖釘時,我顯示一個Custom InfoBox,因爲Windows應用商店SDK中沒有內建一個圖釘。它顯示罰款,但當用戶點擊框外我想隱藏/解僱它,就像你在Windows 8中的本地冰毒地圖應用程序中看到的。隱藏信息框,當指針在外面點擊時

我試圖在地圖本身上設置一個Tapped回調,但問題在於即使點擊圖釘來顯示信息框,它也總是被調用。

我可以使用一次性布爾當圖釘第一次點擊,但這似乎是一個醜陋的做法,什麼是一種更好的方式來完成我想要的?

回答

0

在地圖上添加點擊/點按事件。爲了防止點擊事件冒泡到地圖,在圖釘上的點擊事件中,將事件args句柄屬性設置爲true。這將使得地圖點擊甚至在點擊圖釘時不會觸發。您也可以爲信息框添加類似的點按事件/處理屬性,以便在單擊信息框時它不會關閉。

0

我認爲解決這個的最好方法就是使用附帶的彈出按鈕如下圖所示(我不知道,如果你使用的是Windows 8.1,但現在這就是我做一個假設)

您可以添加附加的彈出窗口,以圖釘象下面這樣:

<maps:Pushpin Height="100" Width="100" Tapped="UIElement_OnTapped"> 
    <FlyoutBase.AttachedFlyout> 
     <Flyout> 
      <Grid Width="100" Height="100" Background="Red"></Grid> 
     </Flyout> 
    </FlyoutBase.AttachedFlyout> 
    <maps:MapLayer.Position> 
     <maps:Location Latitude="47.610039" Longitude="-122.342207" /> 
    </maps:MapLayer.Position> 
</maps:Pushpin> 

而在螺紋事件中,你添加一些代碼,以顯示彈出:

var element = sender as FrameworkElement; 
if (element != null)   { 
    FlyoutBase.ShowAttachedFlyout(element); 
} 

因爲彈出自動爲LightDismis黑貂,你不必再擔心信息框的關閉了。

只需使用您的自定義信息框將紅色背景替換爲網格,並且您可以輕鬆前往。 (可能一些對齊的東西要100%)

希望這會有所幫助。