如何在地图窗口手机8中添加工具提示?

时间:2013-01-16 13:28:32

标签: windows-phone-8

我的Windows 8手机应用程序以编程方式使用mapoverlay将图像(作为图钉)添加到地图中的特定协调。现在我想在点击它之后为图像(引脚)添加工具提示。有谁知道如何解决这个问题?

pinIMG = new Image();
                pinIMG.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri("/Assets/pin.png", UriKind.Relative));

MapOverlay myLocationOverlay = new MapOverlay();
                myLocationOverlay.Content = pinIMG;
                myLocationOverlay.PositionOrigin = new Point(0.5, 0.5);
                myLocationOverlay.GeoCoordinate = new GeoCoordinate(57.724611, 12.938945);

MapLayer myLocationLayer = new MapLayer();
myLocationLayer.Add(myLocationOverlay);
MyMap.Layers.Add(myLocationLayer);

1 个答案:

答案 0 :(得分:0)

不要将Image添加到MapOverlay,而是考虑添加ExpanderView控件,该控件可以扩展以添加其他数据。您需要下载Windows Phone Toolkit才能获得ExpanderView控件。在您使用它时,您可能希望切换到使用Map Extensions Pushpins来获取数据绑定支持。

private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    MapLayer myLayer = new MapLayer();
    MapOverlay myOverlay = new MapOverlay()
                            {
                                GeoCoordinate = new GeoCoordinate(-17, 133)
                            };
    ExpanderView expander = new ExpanderView();

    expander.Header = new Image()
    {
        Source = new BitmapImage(new Uri("Assets/ApplicationIcon.png", UriKind.Relative)),
        Width = 200
    };
    expander.ItemsSource = new[]
    {
        new TextBlock{ Text = "HELLO"}
    };

    myOverlay.Content = expander;
    myLayer.Add(myOverlay);
    myMap.Layers.Add(myLayer);
}

当我们运行此示例时,我们可以在澳大利亚看到以下图标:

Icon over australia

点击ti后,我们可以看到“Hello”文字显示:

Text over australia

一些ceavets:上面的代码示例很糟糕。 ExpanderView旨在将ItemSource和IteTemplate用于多个项目数据绑定。将它用于单个项目并不是很好。上面的代码示例也很糟糕,因为它在C#代码中创建UI元素,而使用Map Extensions可能会将此代码放在XAML中。