2012-07-23 43 views
0

我有一个场景,我希望用户在wp7应用程序中查看Bing地图中的多个图钉。我使用maplayer来制作图钉集群,但我无法在cs文件本身中动态地将图像添加到该图钉。顺便说一下,我没有使用xaml中的图钉控件。我只是在循环播放时将图钉对象添加到maplayer。如何在c中动态显示图像图像#

这里是我的代码:

maplayer layer = new maplayer(); 

watcher.start(); 

for (int i = 0; i < lst.count; i++) 

      {     
        Pushpin mypin = new Pushpin(); 
        watcher.Position.Location.Latitude = Convert.ToDouble(lst[i].Latitude); 
        watcher.Position.Location.Longitude=Convert.ToDouble(lst[i].Longitude); 

       } 


       GeoCoordinate geo = new GeoCoordinate(watcher.Position.Location.Latitude, watcher.Position.Location.Longitude); 
       mypin.Location = geo; 

       mypin.Background = new SolidColorBrush(Colors.Gray); 
       mypin.Foreground = new SolidColorBrush(Colors.White); 
       mypin.Content = "My location"; 
       layer.AddChild(mypin, mypin.Location); 
      } 
      map1.SetView(watcher.Position.Location, Status == true ? 5.0 : 3.0); 
      map1.Children.Add(layer); 


watcher.stop(); 

我也使用图像画笔属性来提供图像源试图图钉但图钉本身变为不可见。

这样的:

ImageBrush ib = new ImageBrush(); 

ib.ImageSource = new System.Windows.Media.Imaging.BitmapImage(new Uri(@"Images/push.png", UriKind.Relative)); 

mypin.Background = ib; 

请帮我在这。我需要在不更改/添加数据模板的情况下完成xaml侧的图钉。

回答

1

此问题在MSDN中的Working With Pushpins的页面中进行了介绍。以下是给出的示例,其中图像直接添加到地图上的图层:

namespace WindowsPhoneApplication1 
{ 
    public partial class MainPage : PhoneApplicationPage 
    { 
     MapLayer imageLayer; 


     public MainPage() 
     { 
      InitializeComponent(); 

      //Create a layer to contain the pushpin images. 
      imageLayer = new MapLayer(); 
      map1.Children.Add(imageLayer); 
     } 


     private GeoCoordinate mapCenter; 

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 

      // Retrieve the center of the current map view. 
      mapCenter = map1.Center; 

      // Define the image to use as the pushpin icon. 
      Image pinImage = new Image(); 

      //Define the URI location of the image. 
      pinImage.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri("bluepushpin.png", UriKind.Relative)); 

      //Define the image display properties. 
      pinImage.Opacity = 0.8; 
      pinImage.Stretch = System.Windows.Media.Stretch.None; 

      // Put the image at the center of the view. 
      PositionOrigin position = PositionOrigin.Center; 
      imageLayer.AddChild(pinImage, mapCenter, position); 

     } 
    } 
}