2016-12-19 4 views
8

Ich verwende MapBox, um eine benutzerdefinierte Karte eines bestimmten Bereichs anzuzeigen. In MapBox: Mein spezifischer Bereich ist gelb und der Rest der Karte ist transparent (siehe folgendes Bild).UWP: MapControl Transparenter Hintergrund

In MapBox

Was will ich erreichen: ich eine MapControl über ein Hintergrundbild setzen wollen. Wenn also die Kacheln der Karte transparent sind, kann ich das Hintergrundbild sehen.

Das Problem habe ich: In meiner UWP App wird der spezifische Bereich der Karte korrekt (gelb) angezeigt, aber der Rest der Karte ist somit das Hintergrundbild von der Karte versteckt ist schwarz.

Es gibt kein Problem mit MapBox, da die erzeugten Kacheln transparent sind. Ich denke, das Problem ist in meiner App.

Ich habe versucht, den Hintergrund des MapControl zu Transparent ohne Erfolg festzulegen.

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; 

Bin ich etwas falsch zu machen oder ist es einfach nicht möglich?

Danke für Ihre Hilfe

+0

Haben Sie versucht, Layer von MapTileSource zu ändern? Zum Beispiel mts.Layer = MapTileLayer.BackgroundReplacement; – Kuba

+0

Probieren Sie es einfach aus. Nichts hat sich leider geändert :(. Danke trotzdem :) – Sudo

+0

Wird die Hintergrundeigenschaft von MapControl komplett ignoriert? Wenn nicht, könnten Sie vielleicht den Hintergrund mit einer ImageBrush-Eigenschaft z. '' – schumi1331

Antwort

0

Die MapControl ist eine sehr komplizierte Steuerung. Es verwendet ein SwapChainPanel, um mit Direct X zu interagieren. Es würde mich überraschen, wenn das, was Sie versuchen, möglich ist.