अधिक

परत का रंग बदलना


मेरे पास एक नक्शा है जिसमें कई फीचर क्लास हैं। मैं मानचित्र पर एक चयनित परत (फीचर वर्गों में से एक उर्फ) प्राप्त करने के लिए आर्कोबजेक्ट्स का उपयोग करना चाहता हूं, और उस फीचर वर्ग के भीतर सभी बहुभुजों के भरण रंग को बदलना चाहता हूं। मैं अब और सुविधाएँ नहीं जोड़ना चाहता या एक नया फ़ीचर वर्ग नहीं बनाना चाहता, बस मौजूदा लोगों के रंग बदलें। मैं इसे एक उपयोगकर्ता इनपुट रंग बनाना चाहता हूं, इसलिए मैं वीएस2013 में रंग संवाद का उपयोग करना चाहता हूं।

मैंने पढ़ा है कि IGraphicsContainer लागू करने के लिए एक उपयोगी इंटरफ़ेस है, लेकिन मुझे नहीं पता कि यह कैसे करना है।

ILayerDescription लेयरडेस = (ILayerDescription)फीटलेयर; Layerdes.SelectionColor = colorDialog1.Color;

इन पंक्तियों के साथ कोड लागू करने से मुझे त्रुटि मिली: 'System.Drawing.Color' प्रकार को 'ESRI.ArcGIS.Display.IColor' में स्पष्ट रूप से परिवर्तित नहीं कर सकता


पहले RGB घटकों का उपयोग करके .NET कलर ऑब्जेक्ट को कलर डायलॉग से IColor में बदलें। रंग गुणों को इस तरह से एक विधि में पास करना चाहिए:

सार्वजनिक IColor GetColor (int pRed, int pGreen, int pBlue) {IRgbColor rgb = new RgbColorClass (); आरजीबी.रेड = पीआरईडी; आरजीबी.ग्रीन = पीग्रीन; आरजीबी.ब्लू = पीब्लू; वापसी (आईकोलर) आरजीबी; }

"सीएस

IFeatureClass फीचरक्लास = अशक्त; IObjectClass ऑब्जेक्टक्लास = फीचर। क्लास; फीचरक्लास = ऑब्जेक्टक्लास IFeatureClass के रूप में; IGeoFeatureLayer परत = IGeoFeatureLayer के रूप में फीचर लेयर; IFeatureRenderer featureRenderer = layer.Renderer; आईसिंबोल प्रतीक = शून्य; अगर (फीचर रेंडरर IUniqueValueRenderer है) { IUniqueValueRenderer uniqueValueRenderer = फीचर रेंडरर IUniqueValueRenderer के रूप में; प्रतीक = UniqueValueRenderer.DefaultSymbol; } अगर (फीचर रेंडरर ISimpleRenderer है) {ISimpleRenderer simpleRender = featureRenderer ISimpleRenderer के रूप में; प्रतीक = सरल रेंडर। प्रतीक; }"