Показать настраиваемый MapIcon для WPF MapControl - PullRequest
2 голосов
/ 16 июня 2020

Я хотел бы отображать настраиваемый значок карты в приложении 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...