private void FrmEditLine_Load(object sender, EventArgs e) { IMultiLayerLineSymbol pMultiLayerLineSymbol = pStyleGalleryItem.Item as IMultiLayerLineSymbol; colorSimpleLine.SelectedColor = ClsGDBDataCommon.IColorToColor(pMultiLayerLineSymbol.get_Layer(0).Color); PreviewImage(); addListBoxItem(); }
//线 设计 private void colorLine_SelectedColorChanged(object sender, EventArgs e) { if (pStyleGalleryItem == null) { MessageBox.Show("请选择线样式", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } ILineSymbol pLineSymbol = pStyleGalleryItem.Item as ILineSymbol; if (pLineSymbol == null) { return; } pLineSymbol.Color = ClsGDBDataCommon.ColorToIColor(colorLine.SelectedColor); //新添加,用于更改线修饰颜色 if (pLineSymbol is IMultiLayerLineSymbol) { IMultiLayerLineSymbol pMultiLyerLine = pLineSymbol as IMultiLayerLineSymbol; int nLCount = pMultiLyerLine.LayerCount; for (int j = 0; j < nLCount; j++) { ILineSymbol Psymbol = pMultiLyerLine.get_Layer(j); ILineProperties pLineProp = Psymbol as ILineProperties; List <ILineDecorationElement> Linedeclist = new List <ILineDecorationElement>(); if (pLineProp != null) { ILineDecoration pLineDec = pLineProp.LineDecoration; if (pLineDec != null) { int ncount = pLineDec.ElementCount; for (int i = 0; i < ncount; i++) { ILineDecorationElement pLineDecEle = pLineDec.get_Element(i); Linedeclist.Add(pLineDecEle); } if (Linedeclist.Count > 0) { for (int i = 0; i < ncount; i++) { ISimpleLineDecorationElement pSLDecEle = Linedeclist[i] as ISimpleLineDecorationElement; ISimpleLineDecorationElement pnewele = new SimpleLineDecorationElementClass(); if (pSLDecEle != null) { IMarkerSymbol pMSymbol = pSLDecEle.MarkerSymbol; pMSymbol.Color = ClsGDBDataCommon.ColorToIColor(colorLine.SelectedColor); pnewele.AddPosition(pSLDecEle.get_Position(i)); pnewele.MarkerSymbol = pMSymbol; pLineDec.DeleteElement(i); pLineDec.AddElement(pnewele); } } } } } } } PreviewImage(); }