2011-05-02 44 views
2

我有一個位於滾動查看器內的bing映射以及一個列表框。滾動查看器中的bing映射問題

現在的問題是當ScrollViewer中的內容被向下滾動,「秉地圖上分別位於上述的ScrollViewer其它元件的頂部呈現(ScrollViewer中的邊界之外)」

<TextBlock Text="some text" /> 
<ScrollViewer> 
    <map:Map ... /> 
    <ListBox ... /> 
</ScrollViewer> 

什麼是錯誤?這是一個已知的錯誤嗎? 我想包括在我的搜索結果列表框中選擇一個小地圖(同爲Windows Phone的兵結果頁面中的「本地」樞紐項目一樣)

一些意見: (1)僅適用於Bing地圖平鋪圖像呈現在頂部(甚至沒有圖釘) (2)位於滾動查看器(在xaml中)下面的元素被正確地渲染在地圖頂部!

謝謝

回答

1

好的,我終於找到了一個很好的解決方法,使它看起來很棒。 這裏的訣竅是:

ONE。我們通過將以下行添加到page/usercontrol的構造函數中來禁用bing地圖平鋪圖像:

map.Mode.Content.Visibility = System.Windows.Visibility.Collapsed; 

兩個。在地圖控制之前,我們添加一個與地圖控件具有相同寬度和高度的元素:

<ScrollViewer> 
    <Grid> 
     <Image .../> 
     <map:Map .../> 
    </Grid> 
    <ListBox ... /> 
</ScrollViewer> 

三。現在我們建立了從 「兵靜態地圖API」 圖像元素的的BitmapImage: http://msdn.microsoft.com/en-us/library/ff701724.aspx

var url = "<bing static map api url for my location and zoom level - without any pushpin>"; 
var uri = new Uri(url); 
imgStaticMap.Source = new BitmapImage(uri); 

這樣:

  • 我們將有相同的地圖(兩者都是Bing地圖)
  • 靜態地圖通常會在滾動條中顯示
  • 對於這種情況甚至會更好,因爲這種方式不會對我們的小地圖產生負載影響(而不可避免的負載效應)
1

只是不要把地圖放在scrollviewer。

這也可以防止應用程序內滾動問題。

+0

Ofcourse這是一個 「決定」 的,如果我有我會。 但是我在這裏尋找的是這個問題的解決方案,或者爲什麼會發生這種情況,或者這是一個已知的錯誤。 操作系統本身在bing搜索結果頁面的「本地」選項卡中具有此效果(滾動條內的地圖)。 將bing地圖放在滾動查看器的外面會浪費屏幕上的大量有用空間。 – 2011-05-03 08:45:49

+1

本機應用程序不是用Silverlight編寫的,因此對可以執行和不可執行的操作有不同的限制。我們必須在框架所暴露的範圍內工作。 – 2011-05-03 08:51:55

+0

我知道並非所有本地應用程序都可能在我的應用程序中執行。但我仍然不相信這是不可能的,因爲(1)只有bing地圖平鋪圖像被渲染在頂部(甚至不是圖釘)(2)位於滾動查看器(在xaml中)下方的元素被正確地渲染在頂部的地圖! – 2011-05-03 09:05:20