Ошибка Mapsui: Как исправить, что PresentationSource не имеет значения? - PullRequest
0 голосов
/ 21 декабря 2018

Я начал разрабатывать приложение WPF с Mapsui.Сначала я попытался познакомиться с Mapsui в отдельном проекте Visual Studio.Теперь я хочу включить свой код в мой основной проект.

В данный момент я получаю следующее сообщение об ошибке, из которого я не могу понять:

Система.Исключение: «PresentationSource is null»

В моем тестовом проекте для Mapsui я не получил эту ошибку.

Я также попытался включить код своего приложения в тестовый проект,Но здесь я также получаю это сообщение об ошибке.

<Grid Grid.Column="1" Grid.Row="0" Margin="10,10,10,10">
        <xaml:MapControl Name="MapControl"></xaml:MapControl>
</Grid>

Может быть, кто-то знает идеи, на которые мне следует присмотреться, или имеет прямое решение.Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 11 марта 2019

Ошибка может быть вызвана ошибкой в ​​конструкторе viewmodel.Я получил эту ошибку в представлении WPF, в котором размещен пользовательский элемент управления, содержащий mapconi-элемент управления Mapsui в приложении WPF MVVM.

System.Exception HResult = 0x80131500 Сообщение = PresentationSource is null Source = Mapsui.UI.Wpf StackTrace: at Mapsui.UI.Wpf.MapControl.DetermineSkiaScale () в Mapsui.UI.Wpf.MapControl.DetermineScale ()

Если я установлю RenderMode = 'Skia' или оставлю это поле пустым, я получу ошибку.Исправлена ​​ошибка путем установки RenderMode в Wpf в xaml в пользовательском контроле.Установка этого RenderMode в wpf также работала в коде за usercontrol, устанавливая его в конструкторе usercontrol.

<Wpf:MapControl RenderMode="Wpf" Name="myMapControl" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />

или

this.myMapControl.RenderMode = Mapsui.UI.Wpf.RenderMode.Wpf;

Цель под моим пользовательским контролем состояла в том, чтобы я мог создатьпривязка к Mapsui.MapControl.Map к модели представления.

Снимок экрана Mapsui.mapcontrol, размещенного в пользовательском контроле WPF.

enter image description here

...