Select to view content in your preferred language

How to set color property at runtime from featurelayer?

644
1
10-25-2011 10:59 AM
EdibertoAlves1
Deactivated User
Hi,
My question is just about color property without using XAML on the featurelayer. Is there any way in C#?

Thanks
Ediberto
0 Kudos
1 Reply
JenniferNery
Esri Regular Contributor
Which color do you want to update at run-time?

If SelectionColor (default is Cyan, below it is set to Yellow). If Symbol.Color, you can overwrite just the Symbol (see Initialized event handler) or overwrite the Renderer upfront before Initialized. Note that, the symbol must match the type of geometry of your FeatureLayer. The code below assumes Point geometry.

            var sr = new SimpleRenderer()
            {
                Symbol = new SimpleMarkerSymbol()
                {
                    Color = new SolidColorBrush(Colors.Green),
                    Size = 10d,
                    Style = SimpleMarkerSymbol.SimpleMarkerStyle.Cross
                }
            };

            FeatureLayer l = new FeatureLayer() { Url = "someUrl", Renderer = sr };
            l.Initialized += new EventHandler<EventArgs>(l_Initialized);
            MyMap.Layers.Add(l);
            l.SelectionColor = new SolidColorBrush(Colors.Yellow);
        }

        void l_Initialized(object sender, EventArgs e)
        {
            FeatureLayer l = sender as FeatureLayer;
            if (l.Renderer is SimpleRenderer)
            {
                var sr = l.Renderer as SimpleRenderer;
                sr.Symbol = new SimpleMarkerSymbol()
                {
                    Color = new SolidColorBrush(Colors.Blue),
                    Size = 10d,
                    Style = SimpleMarkerSymbol.SimpleMarkerStyle.Circle
                };
            }
        }
0 Kudos