在WPF中使用XAML岛的MapControl:默认地图层显示在自定义平铺层上

在WPF中使用XAML岛的MapControl:默认地图层显示在自定义平铺层上,wpf,xaml,xaml-islands,Wpf,Xaml,Xaml Islands,我已经在我的WPF应用程序中添加了一个MapControlusing。我想向其中添加自定义地图层,因此我使用添加了一个OpenStreetMap平铺层。我想删除默认映射,但它不起作用 我已经在UWP应用程序中测试了原始的MapControl,它可以正常工作 我在WPF中的代码: 公共部分类主窗口:窗口 { 公共主窗口() { 初始化组件(); HttpAptileDataSource=新的HttpAptileDataSource(“http://c.tile.openstreetmap.or

我已经在我的WPF应用程序中添加了一个
MapControl
using。我想向其中添加自定义地图层,因此我使用添加了一个
OpenStreetMap
平铺层。我想删除默认映射,但它不起作用

我已经在UWP应用程序中测试了原始的
MapControl
,它可以正常工作

我在WPF中的代码:


公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
HttpAptileDataSource=新的HttpAptileDataSource(“http://c.tile.openstreetmap.org/{zoomlevel}/{x}/{y}.png”);
MapTileSource tileSource=新的MapTileSource(数据源);
tileSource.Visible=true;
tileSource.Layer=MapTileLayer.BackgroundReplacement;
tileSource.IsFadingEnabled=false;
mapControl.Style=Microsoft.Toolkit.Win32.UI.Controls.Interop.WinRT.MapStyle.None;
mapControl.TileSources.Add(tileSource);
}
}
这是WPF应用程序。它在顶部显示
OpenStreetMap
图层和默认的
Bing
地图图层:

这是UWP应用程序,仅完美显示
OpenStreetMap

在WPF中有解决方案吗

更新

我发现这一行应用不正确,导致了错误:

mapControl.Style=Microsoft.Toolkit.Win32.UI.Controls.Interop.WinRT.MapStyle.None;

我终于找到了解决方案。将以下行添加到初始化代码:

Windows.UI.Xaml.Controls.Maps.MapControl原始控件=
mapControl.GetUwpInternalObject()作为Windows.UI.Xaml.Controls.Maps.mapControl;
if(originalMapControl!=null)
{
originalMapControl.Style=MapStyle.None;
}

它修复了这个缺陷。

您考虑过使用一个吗?@Clemens是的。我用过。但是我有一些性能限制,
Xaml.MapControl
CPU
使用率高于uwpmappontrol。(高达20%)