我已经开始使用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>


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

最佳答案

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

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的屏幕截图。

c# - Mapsui错误:如何修复PresentationSource为空?-LMLPHP

09-30 20:59