ThinkGeo.com    |     Documentation    |     Premium Support

Dynamically change BackgroundLayer color

Hi All,


I apologize in advance if I am overlooking the obvious. Is there a simple way to change the background color of a map once it has been created? I call this line of code upon map creation:


 


            overLay.Layers.Add(new BackgroundLayer(new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean)));


How do I select a new color, then refresh, without rebuilding the map?
 
Thank you!
Thaine

 



Surely somebody has done this before! Anyone?

Thaine,


 I recommend you use BackGroundOverlay. Since it is an Overlay, you can call the Map1.Refresh and only refresh the background of the map without having to refresh all the other layers. See the code and the screenshots below:


 



public void Post10200()
{
    wpfMap1.MapUnit = GeographyUnit.DecimalDegree;
    BackgroundOverlay backgroundOverlay  = new BackgroundOverlay();
    backgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.StandardColors.LightBlue);
    wpfMap1.BackgroundOverlay = backgroundOverlay;

    ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"C:\ThinkGeo\Support\MapData\Countries02.shp", ShapeFileReadWriteMode.ReadOnly);
    worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.County1;
    worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

    LayerOverlay layerOverlay = new LayerOverlay();
    layerOverlay.TileType = TileType.SingleTile;
    layerOverlay.Layers.Add(worldLayer);
          
    wpfMap1.Overlays.Add(layerOverlay);

    wpfMap1.CurrentExtent = new RectangleShape(-180, 64, -91, 14);

    wpfMap1.Refresh();

}

private void button3_Click(object sender, RoutedEventArgs e)
{
    BackgroundOverlay backgroundOverlay = new BackgroundOverlay();
    backgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.StandardColors.DarkBlue);
    wpfMap1.BackgroundOverlay = backgroundOverlay;
    wpfMap1.Refresh(backgroundOverlay);
}
 

 



 




Thank you! I will give this a try.

Thaine, 
  
   Yes, give it a try. I think this is going to work for you. Thank you.