UWP: MapControl 透明背景
Posted
技术标签:
【中文标题】UWP: MapControl 透明背景【英文标题】:UWP: MapControl Transparent background 【发布时间】: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
设置背景属性,但没有成功。
我是通过放置两个瓷砖来实现这一点的。一个具有恒定的背景图像或图块(恒定的比特流颜色)和另一个我想要显示的图块,当加载图块时,会显示恒定的比特流颜色,当加载图块时,会显示图块。跨度>
【参考方案1】:
MapControl 是一个非常复杂的控件。它使用 SwapChainPanel 与 Direct X 互操作。如果您尝试做的事情是可能的,我会感到惊讶。
【讨论】:
以上是关于UWP: MapControl 透明背景的主要内容,如果未能解决你的问题,请参考以下文章