private static void ApplySymbology(ILayer layer, FileInfo symbology) { if (symbology == null || !symbology.Exists) { return; } IGxLayer pGXLayer = new GxLayer(); IGxFile pGXFile = (IGxFile)pGXLayer; pGXFile.Path = symbology.FullName; if (layer is IRasterLayer) { if (pGXLayer.Layer is IRasterLayer) { IRasterLayer prlayer = (IRasterLayer)pGXLayer.Layer; ((IRasterLayer)layer).Renderer = prlayer.Renderer; } else { throw new Exception(string.Format("Cannot apply symbology file to raster layer {0}. file: {1}", layer.Name, symbology.FullName)); } } else if (layer is IGeoFeatureLayer) { if (pGXLayer.Layer is IGeoFeatureLayer) { IGeoFeatureLayer pGFLayer = (IGeoFeatureLayer)pGXLayer.Layer; ((IGeoFeatureLayer)layer).Renderer = pGFLayer.Renderer; // Copy labels if (pGFLayer.DisplayAnnotation) { try { ((IGeoFeatureLayer)layer).DisplayAnnotation = true; ((IGeoFeatureLayer)layer).AnnotationProperties = pGFLayer.AnnotationProperties; } catch (Exception ex) { System.Diagnostics.Debug.Print(ex.Message); System.Diagnostics.Debug.Assert(false, "Error applying labels from layer file."); } } // Make sure the correct layer properties dialog appears IRendererPropertyPage pRendererPropPage = GetVectorPropertyPage(pGFLayer.Renderer); if (pRendererPropPage != null) { ((IGeoFeatureLayer)layer).RendererPropertyPageClassID = pRendererPropPage.ClassID; } } } }
private static void ApplySymbology(ILayer layer, FileInfo symbology) { if (symbology == null || !symbology.Exists) { return; } IGxLayer pGXLayer = new GxLayer(); IGxFile pGXFile = (IGxFile)pGXLayer; pGXFile.Path = symbology.FullName; if (layer is IRasterLayer) { if (pGXLayer.Layer is IRasterLayer) { IRasterLayer prlayer = (IRasterLayer)pGXLayer.Layer; ((IRasterLayer)layer).Renderer = prlayer.Renderer; } else { throw new Exception(string.Format("Cannot apply symbology file to raster layer {0}. file: {1}", layer.Name, symbology.FullName)); } } else if (layer is IGeoFeatureLayer) { if (pGXLayer.Layer is IGeoFeatureLayer) { IGeoFeatureLayer pGFLayer = (IGeoFeatureLayer)pGXLayer.Layer; ((IGeoFeatureLayer)layer).Renderer = pGFLayer.Renderer; IRendererPropertyPage pRendererPropPage = GetVectorPropertyPage(pGFLayer.Renderer); if (pRendererPropPage != null) { ((IGeoFeatureLayer)layer).RendererPropertyPageClassID = pRendererPropPage.ClassID; } } } }