Көбірек

Қабат түсін өзгерту

Қабат түсін өзгерту


Менде көптеген функционалды сыныптар бар карта бар. Мен картадағы таңдалған қабатқа (мүмкіндіктер класстарының бірі) жету үшін арбобектілерді қолданғым келеді және осы функция класындағы барлық көпбұрыштардың толтыру түсін өзгерткім келеді. Мен енді мүмкіндіктер қосқым келмейді немесе жаңа мүмкіндіктер класын жасағым келмейді, тек барларының түстерін өзгертіңіз. Мен мұны пайдаланушыға түс енгізгім келеді, сондықтан VS2013-те түсті диалогты қолданғым келеді.

IGraphicsContainer-ді іске асыруға пайдалы интерфейс екенін оқыдым, бірақ мұны қалай жасау керектігін білмеймін.

ILayerDescription layerdes = (ILayerDescription) өнер көрсетуші; layerdes.SelectionColor = colorDialog1.Color;

Осы жолдармен кодты енгізу маған қате жіберді: 'System.Drawing.Color' түрін 'ESRI.ArcGIS.Display.IColor' түріне айналдыру мүмкін емес


Алдымен RGB компоненттерін пайдаланып .NET түс нысанын түсті диалогтан IColor-ге түрлендіріңіз. Түс қасиеттерін келесі әдіске беру керек:

public IColor GetColor (int pRed, int pGreen, int pBlue) {IRgbColor rgb = жаңа RgbColorClass (); rgb.Red = pRed; rgb.Green = pGreen; rgb.Blue = pBlue; return (IColor) rgb; }

«CS

IFeatureClass featureClass = нөл; IObjectClass objectClass = feature.Class; featureClass = objectClass IFeatureClass ретінде; IGeoFeatureLayer қабаты = IGeoFeatureLayer ретінде featureLayer; IFeatureRenderer featureRenderer = layer.Renderer; ISymbol таңбасы = нөл; егер (featureRenderer - IUniqueValueRenderer) {IUniqueValueRenderer uniqueValueRenderer = featureRenderer IUniqueValueRenderer ретінде; символ = uniqueValueRenderer.DefaultSymbol; } егер (featureRenderer ISimpleRenderer) {ISimpleRenderer simpleRender = featureRenderer ретінде ISimpleRenderer; таңба = simpleRender.Symbol; } «