Vairāk

Slāņa krāsas maiņa


Man ir karte ar daudzām iezīmju klasēm. Es vēlos izmantot arkobjektus, lai nokļūtu izvēlētajā slānī (jeb vienā no pazīmju klasēm) kartē un mainītu visu daudzstūru aizpildīšanas krāsu šajā objektu klasē. Es vairs nevēlos pievienot funkcijas vai izveidot jaunu funkciju klasi, vienkārši mainiet esošo krāsu. Es gribu padarīt to par lietotāja ievadītu krāsu, tāpēc es vēlos izmantot krāsu dialoglodziņu VS2013.

Esmu lasījis, ka IGraphicsContainer ir noderīga saskarne, lai to ieviestu, bet es nezinu, kā to izdarīt.

ILayerDescription layerdes = (ILayerDescription) featlayer; layerdes.SelectionColor = colorDialog1.Color;

Īstenojot kodu ar šīm rindām, man radās kļūda: Nevar netieši pārveidot veidu “System.Drawing.Color” uz “ESRI.ArcGIS.Display.IColor”


Vispirms pārveidojiet .NET krāsu objektu no krāsu dialoglodziņa uz IColor, vispirms izmantojot RGB komponentus. Krāsu īpašību nodošana šādai metodei:

public IColor GetColor (int pRed, int pGreen, int pBlue) {IRgbColor rgb = new RgbColorClass (); rgb.Red = pRed; rgb.Green = pGreen; rgb.Blue = pBlue; atgriešanās (IColor) rgb; }

"CS

IFeatureClass featureClass = null; IObjectClass objectClass = feature.Class; featureClass = objectClass kā IFeatureClass; IGeoFeatureLayer layer = featureLayer kā IGeoFeatureLayer; IFeatureRenderer featureRenderer = layer.Renderer; IS simbola simbols = nulle; if (featureRenderer ir IUniqueValueRenderer) {IUniqueValueRenderer unikālsValueRenderer = featureRenderer kā IUniqueValueRenderer; simbols = unikālsValueRenderer.DefaultSymbol; } if (featureRenderer ir ISimpleRenderer) {ISimpleRenderer simpleRender = featureRenderer kā ISimpleRenderer; simbols = simpleRender.Symbol; } "


Skatīties video: Lakas, pirmas sluoksnis (Septembris 2021).