滚动查看器中的bing map问题

时间:2011-05-02 21:45:19

标签: silverlight windows-phone-7 bing-maps scrollviewer

我有一张位于滚动查看器内的bing地图以及一个列表框。

现在问题是当滚动查看器的内容向下滚动时,“Bing地图呈现在滚动查看器上方(滚动查看器边界之外)的其他元素之上”

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

有什么问题?这是一个已知的bug吗? 我正在尝试在搜索结果列表框中包含一个小地图(与windows phone bing结果页面'本地'枢轴项目相同)

一些观察: (1)只有顶部地图平铺图像呈现在顶部(甚至不是图钉) (2)位于滚动查看器下方的元素(在xaml中)正确地呈现在地图的顶部!

谢谢

3 个答案:

答案 0 :(得分:1)

只是不要将地图放在滚动查看器中。

这也可以防止在应用内滚动的问题。

答案 1 :(得分:1)

好的,我终于找到了一个很好的解决方法,让它看起来很棒。 这是诀窍:

ONE。我们通过将以下行添加到page / usercontrol的构造函数来禁用bing map tile图像:

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

TWO。在地图控件之前,我们添加一个与地图控件具有相同宽度和高度的元素:

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

THREE。现在我们从“Bing静态地图API”为Image元素构建一个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地图)
  • 静态地图在滚动条中正常显示
  • 这种情况甚至更好,因为这种方式不会对我们的小地图产生负载效应(虽然有不可避免的负载效应)

答案 2 :(得分:0)

我将JeffWilcox.Maps组件用于类似目的。这个静态映射在ScrollViewer中运行良好。