2

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

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

4

1 回答 1

0

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

System.Exception HResult=0x80131500 Message=PresentationSource 为空 Source=Mapsui.UI.Wpf StackTrace:在 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 的屏幕截图。

在此处输入图像描述

于 2019-03-11T12:35:48.993 回答