Как доступиться к цветам слоя из программы?
Например, когда мы счёлкаем мышкой по прямоугольнику в ТОС и получаем окно с выбором цвета для полигонального слоя. Как это программно сделать?
доступ к цветам слоя в ArcObjects
-
- Участник
- Сообщения: 70
- Зарегистрирован: 02 апр 2009, 14:41
- Репутация: 1
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: доступ к цветам слоя в ArcObjects
Цвет, также как тип и толщина линий и т.п., является характеристикой выбранного символа для отображения. Программно это меняется через интерфейс ISymbol и его производные
http://edndoc.esri.com/arcobjects/9.2/C ... Symbol.htm
http://edndoc.esri.com/arcobjects/9.2/C ... Symbol.htm
-
- Участник
- Сообщения: 70
- Зарегистрирован: 02 апр 2009, 14:41
- Репутация: 1
Re: доступ к цветам слоя в ArcObjects
Bishop писал(а):Цвет, также как тип и толщина линий и т.п., является характеристикой выбранного символа для отображения. Программно это меняется через интерфейс ISymbol и его производные
http://edndoc.esri.com/arcobjects/9.2/C ... Symbol.htm
Спасибо за ответ.
А где-нибудь примеры посмотреть можно, как эти интерфейсы используются для получения цвета слоя? А то документация как-то малоинфомативна...
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: доступ к цветам слоя в ArcObjects
Вам сюда: http://resources.esri.com/help/9.3/arcg ... erview.htm
Еще на форуме обсуждается близкая тема: viewtopic.php?f=16&t=8472
Еще на форуме обсуждается близкая тема: viewtopic.php?f=16&t=8472
-
- Участник
- Сообщения: 70
- Зарегистрирован: 02 апр 2009, 14:41
- Репутация: 1
Re: доступ к цветам слоя в ArcObjects
Спасибо, вроде, то что надо. Буду разбираться...
-
- Участник
- Сообщения: 70
- Зарегистрирован: 02 апр 2009, 14:41
- Репутация: 1
Re: доступ к цветам слоя в ArcObjects
В общем, всё оказалось достаточно просто. Може, кому-то понадобится:
Код: Выделить всё
IColor getColor(ILayer layer)
{
IColor color = null;
IGeoFeatureLayer geoFeatureLayer = layer as IGeoFeatureLayer;
IFeatureRenderer featureRenderer = geoFeatureLayer.Renderer;
IFeatureClass featureClass = geoFeatureLayer.FeatureClass;
IQueryFilter queryFilter = new QueryFilterClass();
featureRenderer.PrepareFilter(featureClass, queryFilter);
IFeatureCursor featureCursor = featureClass.Search(queryFilter, false);
IFeature feature = featureCursor.NextFeature();
ISymbol symbol = featureRenderer.get_SymbolByFeature(feature);
if (symbol is IFillSymbol)
{
IFillSymbol fillSymbol = symbol as IFillSymbol;
color = fillSymbol.Color;
}
if (symbol is IMarkerSymbol)
{
IMarkerSymbol markerSymbol = symbol as IMarkerSymbol;
color = markerSymbol.Color;
}
if (symbol is ILineSymbol)
{
ILineSymbol lineSymbol = symbol as ILineSymbol;
color = lineSymbol.Color;
}
return color;
}
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей