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 属性设置背景,例如&lt;MapsControl.Background&gt;&lt;ImageBrush .../&gt;&lt;/MapsControl.Background&gt; 嗯,背景属性没有被忽略,我可以在MapControl加载的开头看到。就在瓷砖出现之前。我确实尝试使用ImageBrush 设置背景属性,但没有成功。 我是通过放置两个瓷砖来实现这一点的。一个具有恒定的背景图像或图块(恒定的比特流颜色)和另一个我想要显示的图块,当加载图块时,会显示恒定的比特流颜色,当加载图块时,会显示图块。跨度> 【参考方案1】:

MapControl 是一个非常复杂的控件。它使用 SwapChainPanel 与 Direct X 互操作。如果您尝试做的事情是可能的,我会感到惊讶。

【讨论】:

以上是关于UWP: MapControl 透明背景的主要内容,如果未能解决你的问题,请参考以下文章

UWP TextBox私人定制

如何使DIV背景透明内容不透明

gis如何导出透明背景的图?

Vue设置背景色透明度字体不透明

ps怎么把背景透明

怎么通过代码把图片的黑色背景变成透明的?