2010-12-17 5 views
1

Ich habe ein Bild auf einem Windows Phone 7 MapLayer auf einem Kartensteuerelement, das ich verschieben muss. Es wäre toll, es zu transformieren (animieren), aber kein Muss.WP7 Objekte auf einer Karte verschieben

kann also sagen, ich habe einen MapLayer genannt pLayer und ich füge hinzu, ein Bild, um es:

Image img = new Image(); 
img.Source = new BitmapImage(new Uri("XXX.png")); 
pLayer.AddChild(img, new GeoCoordinate(LAT, LNG)); 

Wie verschiebe ich die Lage, nachdem ich es in den MapLayer [pLayer] hinzugefügt habe?

Kann ich auf die pLayer.Childeren[KEY].Location oder etwas zugreifen?

Antwort

-1

Ich denke, Sie müssen ein Canvas der gleichen Größe wie das Map-Steuerelement erstellen, fügen Sie dann das als Kind eines Karten-Layers und fügen Sie das Bild als ein Kind des Canvas. Dies sollte Ihnen dann die Möglichkeit geben, das Bild durch Berühren von Gesten absolut auf der Leinwand zu positionieren. Der GestureService.GestureListener in der Silverlight Toolkit for WP7 bietet Ereignisse, die dies erleichtern.

+0

Aber mit diesem Vorschlag verlieren Sie den enormen Vorteil des automatischen geolocating jedes UIElement, das Sie auf die Karte setzen. –

0

Ich weiß nicht, ob es eine einfachere Methode gibt, aber eine Option besteht darin, das Objekt aus der Ebene zu entfernen und es dann an der neuen Position erneut hinzuzufügen.

Image img = ...some image loaded at a location on the map in the above code; 
var ll = new GeoCoordinate(LAT, LNG); 
Layer.Children.Remove(img); 
Layer.AddChild(img, ll); 

This answer auch eine etwas kompliziertere Lösung mit Bindung geben.