Windows phone 7 如何在c语言中动态地给图钉赋予图像#

Windows phone 7 如何在c语言中动态地给图钉赋予图像#,windows-phone-7,xaml,bing-maps,pushpin,Windows Phone 7,Xaml,Bing Maps,Pushpin,我有一个场景,我希望用户在wp7应用程序中查看Bing地图中的多个图钉。我使用maplayer创建图钉集群,但我无法在cs文件本身中动态地向图钉添加图像。顺便说一下,我没有在xaml中使用图钉控件。我只是在循环时将图钉对象添加到maplayer 这是我的密码: maplayer layer = new maplayer(); watcher.start(); for (int i = 0; i < lst.count; i++) {

我有一个场景,我希望用户在wp7应用程序中查看Bing地图中的多个图钉。我使用maplayer创建图钉集群,但我无法在cs文件本身中动态地向图钉添加图像。顺便说一下,我没有在xaml中使用图钉控件。我只是在循环时将图钉对象添加到maplayer

这是我的密码:

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

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

此问题在MSDN中的第页讨论。下面是一个示例,其中图像直接添加到地图上的图层:

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

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

        }
    }
}