0

我的 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);
4

1 回答 1

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);
}

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

在澳大利亚的图标

一旦我们点击 ti,我们可以看到我们的“Hello”文本出现:

澳大利亚的文字

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

于 2013-01-17T19:07:53.323 回答