Mapsui错误:如何修复PresentationSource为空?

时间:2018-12-21 10:31:50

标签: c# wpf mapsui

我已经开始使用Mapsui开发WPF应用程序。首先,我尝试在一个单独的Visual Studio项目中熟悉Mapsui。现在,我要将代码包含到我的主项目中。

目前,我收到以下错误消息,我无法弄清:

System.Exception:“ PresentationSource为空”

在我的Mapsui测试项目中,我没有收到此错误。

我还试图将我的应用程序代码包含到测试项目中。但是在这里我也收到此错误消息。

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

也许有人知道我应该仔细研究或有直接解决方案的想法。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

该错误可能是由于viewmodel构造函数中的错误引起的。 我在WPF视图中收到此错误,该视图托管了一个包含WPF MVVM应用程序中的Mapsui mapcontrol的用户控件。

System.Exception   HResult = 0x80131500   Message = PresentationSource为空   源= Mapsui.UI.Wpf   堆栈跟踪:    在Mapsui.UI.Wpf.MapControl.DetermineSkiaScale()    在Mapsui.UI.Wpf.MapControl.DetermineScale()

如果我设置RenderMode ='Skia'或将其保留为空白,则会出现错误。 通过在用户控件的xaml中将RenderMode设置为Wpf来修复错误。 将此RenderMode设置为wpf,也可以在用户控件后面的代码中使用,并将其设置在用户控件的构造函数中。

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

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

用户控件的目的是让我可以创建到Mapsui.MapControl.Map的绑定到视图模型。

WPF用户控件中托管的Mapsui.mapcontrol的屏幕截图。

enter image description here