У меня есть требование, когда мне нужно показать кнопку для конкретного местоположения. Я могу добавить пользовательскую кнопку, поскольку класс PushPin теперь устарел. Код, который выглядит следующим образом:Pushpin для Windows Phone App 8.1 похож на Windows Map App
var location= new Geopoint(new BasicGeoposition() { Latitude = 19.4034, Longitude = 73.8312 });
var pin= CreatePin();
mapper.Children.Add(pin);
MapControl.SetLocation(pin, location);
MapControl.SetNormalizedAnchorPoint(pin, new Point(0.0, 1.0));
mapper.TrySetViewAsync(location, 16, 0, 0, MapAnimationKind.Bow);
код для пользовательского CreatePin является:
private DependencyObject CreatePin()
{
//Creating a Grid element.
var myGrid = new Grid();
myGrid.RowDefinitions.Add(new RowDefinition());
myGrid.RowDefinitions.Add(new RowDefinition());
myGrid.Background = new SolidColorBrush(Colors.Transparent);
//Creating a Rectangle
var myRectangle = new Rectangle {Fill = new SolidColorBrush(Colors.Black), Height = 20, Width = 20};
myRectangle.SetValue(Grid.RowProperty, 0);
myRectangle.SetValue(Grid.ColumnProperty, 0);
//Adding the Rectangle to the Grid
myGrid.Children.Add(myRectangle);
//Creating a Polygon
var myPolygon = new Polygon()
{
Points = new PointCollection() {new Point(2, 0), new Point(22, 0), new Point(2, 40)},
Stroke = new SolidColorBrush(Colors.Black),
Fill = new SolidColorBrush(Colors.Black)
};
myPolygon.SetValue(Grid.RowProperty, 1);
myPolygon.SetValue(Grid.ColumnProperty, 0);
//Adding the Polygon to the Grid
myGrid.Children.Add(myPolygon);
return myGrid;
}
Я могу показать пользовательский булавку Теперь, однако, не может показать title.Is там путь я могу достичь булавки, как использовать в окне карты приложении
Что я получаю сейчас:
Что я хочу:
Что-то вроде this.Or, если это не представляется возможным способом, чтобы добавить заголовок к контакту. Пожалуйста, не предлагают MapIcon, как я попробовал его, и он не показывает вверх mapicon, если не увеличено, также я нашел его не вполне надежен
MapIcon не гарантированно будет показано. Он может быть скрыт, когда он скрывает другие элементы или метки на карте.
Не обязательно указывать необязательное название MapIcon. Если вы не видите текст, уменьшите его, уменьшив значение свойства ZoomLevel для MapControl.
При отображении изображения MapIcon, указывающего на конкретное местоположение на карте - например, нажатие или стрелка - рассмотрите возможность установки значения свойства NormalizedAnchorPoint в приблизительном местоположении указателя на изображении. Если вы оставите значение NormalizedAnchorPoint со значением по умолчанию (0, 0), которое представляет верхний левый угол изображения, изменения в ZoomLevel карты могут оставить изображение, указывающее на другое место.
Это нормально, если вы пытаетесь подражать старая форма push-контактов, но новый API с [MapIcons] (https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn792121.aspx) представляется лучшим вариантом – Petesh
Я пробовал MapIcons, используя этот код MapIcon MapIcon1 = new MapIcon(); MapIcon1.Location = new Geopoint (startLocation); MapIcon1.NormalizedAnchorPoint = новая точка (0,5, 0,5); MapIcon1.Title = "Space Needle"; mapper.MapElements.Add (MapIcon1); Однако значок не работает, пока он не будет увеличен – Pranjal