我的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);
答案 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);
}
当我们运行此示例时,我们可以在澳大利亚看到以下图标:
点击ti后,我们可以看到“Hello”文字显示:
一些ceavets:上面的代码示例很糟糕。 ExpanderView旨在将ItemSource和IteTemplate用于多个项目数据绑定。将它用于单个项目并不是很好。上面的代码示例也很糟糕,因为它在C#代码中创建UI元素,而使用Map Extensions可能会将此代码放在XAML中。