【发布时间】:2017-05-04 10:31:09
【问题描述】:
我正在使用 MapBox 显示特定区域的自定义地图。在 MapBox 中:我的特定区域是黄色的,地图的其余部分是透明的(见下图)。
我想要达到的目标: 我想在背景图像上放置一个 MapControl。所以当地图的瓦片是透明的时,我可以看到背景图片。
我遇到的问题: 在我的 UWP 应用程序中,地图的特定区域正确显示(黄色),但地图的其余部分为黑色,因此背景图像被地图隐藏。
MapBox 没有问题,因为生成的图块是透明的。我认为问题出在我的应用程序中。
我尝试将 MapControl 的背景设置为透明,但没有成功。
XAML
<Image x:Name="background"
Stretch="UniformToFill"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"/>
<maps:MapControl x:Name="MyMap"
Background="Transparent"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
MapServiceToken="TOKEN"/>
C#
HttpMapTileDataSource leaflet = new HttpMapTileDataSource(
"URL_TO_MAPBOX_API");
MapTileSource mts = new MapTileSource(leaflet);
mts.IsTransparencyEnabled = true;
mts.AllowOverstretch = true;
mts.IsFadingEnabled = false;
this.MyMap.TileSources.Add(mts);
this.MyMap.Style = MapStyle.None;
是我做错了什么还是根本不可能?
感谢您的帮助
【问题讨论】:
-
您是否尝试过更改 MapTileSource 的图层?例如 mts.Layer = MapTileLayer.BackgroundReplacement;
-
刚试过。不幸的是,什么都没有改变:(。无论如何谢谢:)
-
MapControl的背景属性是否被完全忽略了?因为如果不是,您可以使用 ImageBrush 属性设置背景,例如
<MapsControl.Background><ImageBrush .../></MapsControl.Background> -
嗯,背景属性没有被忽略,我可以在
MapControl加载的开头看到。就在瓷砖出现之前。我确实尝试使用ImageBrush设置背景属性,但没有成功。 -
我是通过放置两个瓷砖来实现这一点的。一个具有恒定的背景图像或图块(恒定的比特流颜色)和另一个我想要显示的图块,当加载图块时,会显示恒定的比特流颜色,当加载图块时,会显示图块。跨度>