Arcengine如何修改注记图层中注记的颜色等,我写的代码如下,可是没有实现,不知道错误哪里,求指点。

IWorkspaceEdit pWorkspaceEdit = pWorkspace as IWorkspaceEdit;
bool startEdit = pWorkspaceEdit.IsBeingEdited();
if (!startEdit)
{
pWorkspaceEdit.StartEditing(false);//开启编辑事物操作
}
pWorkspaceEdit.StartEditOperation();
try
{
while ((pFeature = m_FeatureCursor.NextFeature()) != null)
{
pAnnoFeature = pFeature as IAnnotationFeature;
pElement = pAnnoFeature.Annotation as IElement;
pTextElement = pElement as ITextElement;
ITextSymbol pTextSymbol = pTextElement.Symbol;
pTextSymbol.Size = Convert.ToDouble(cboSize.SelectedText.ToString());
pTextSymbol.Color = ConvertColortoIColor(cboColor.BackColor);//颜色的转换
IFontDisp pFont = new StdFont()
{
Name = "楷体",
Size = 5,
} as IFontDisp;
pTextSymbol.Font = pFont
pElement = pTextElement as IElement;
pAnnoFeature.Annotation = pElement;
pFeature = pAnnoFeature as IFeature;
pFeature.Store();
}
}
catch (Exception ex)
{
throw ex;
}
pWorkspaceEdit.StopEditOperation();
pWorkspaceEdit.StopEditing(true);
已邀请:

朱新颖

赞同来自:

您程序初始化的是EngineGeoDB许可吗?编辑注记需要EngineGDB许可。如果还是不行,就新建一个TextSymbol,然后赋给textElement,比如:
ITextElement textElement = annotationFeature.Annotation as ITextElement;
            // ITextSymbol textSymbol = textElement.Symbol;
            ITextSymbol textSymbol = new TextSymbolClass();
            textSymbol.Size = 8;
            textElement.Symbol = textSymbol;
            annotationFeature.Annotation = textElement as IElement;
            feature.Store();

要回复问题请先登录注册