Я хотел бы отображать настраиваемый значок карты в приложении WPF. net core 3.1. Я добавил пакет NuGet Microsoft.Toolkit.Wpf.UI.Controls
и поместил MapControl в MainWindow.
<map:MapControl x:Name="myMap" Loaded="OnMapLoaded" />
В файле кода программной части я добавляю mapIcon в коллекцию MapElements
и устанавливаю Image в mapIconStreamReference.
private void OnMapLoaded(object sender, RoutedEventArgs e)
{
var position = new Geopoint(new BasicGeoposition() { Latitude = Latitude, Longitude = Longitude });
MapIcon mapIcon1 = new MapIcon
{
Location = position,
Image = mapIconStreamReference,
};
myMap.MapElements.Add(mapIcon1);
}
Я пытался инициализировать ссылку на поток разными способами:
// load by WPF pack URI:
mapIconStreamReference = RandomAccessStreamReference.CreateFromUri(new Uri("pack://application:,,,/Assets/MapPin.png"));
// load by UWP pack URI
mapIconStreamReference = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/MapPin.png"));
// load file into a memory stream
var fileStream = File.OpenRead(@"Assets/mappin.png");
var memStream = new MemoryStream();
fileStream.CopyTo(memStream);
mapIconStreamReference = RandomAccessStreamReference.CreateFromStream(memStream.AsRandomAccessStream());
Изображение либо объявлено как Ресурс, либо как Контент (я пробовал все комбинации).
Что бы я ни пробовал, на карте отображается только оранжевый значок карты по умолчанию. Тот же код правильно работает в приложении UWP. Насколько я понимаю, MapControl из набора инструментов - это просто оболочка вокруг UWP MapControl, показанного на острове XAML.