private void aspectFunctionToolStripMenuItem_Click(object sender, EventArgs e) { try { XmlElement xmlEleSlope = doc.CreateElement("Function"); xmlEleSlope.SetAttribute("name", "Aspect"); xmlEleSlope.SetAttribute("description", "Aspect identifies the downslope direction of the maximum rate of change in value from each cell to its neighbors. Aspect can be thought of as the slope direction. The values of the output raster will be the compass direction of the aspect."); //窗口打开 aspectFunction aspectFunction = new aspectFunction(xmlEleSlope); //aspectFunction.Show(); //得到XML中的Element XmlNode node = aspectFunction.GetXMLNode(); XmlElement temp = node as XmlElement; DataRow dataRow = dataTable.NewRow(); //dataRow[0] = dataTable.Columns.Count; //现在是会报错 因为没有传出来temp dataRow[0] = temp.GetAttribute("name"); dataRow[1] = temp.GetAttribute("description"); m_hitRowindex = (m_hitRowindex < 0) ? dataTable.Rows.Count : m_hitRowindex; dataTable.Rows.InsertAt(dataRow, m_hitRowindex); //对doc进行修改 InsertDoc(doc, node, m_hitRowindex); } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
//对于doc进行loop,依次进行Init()函数 private void miFinish_Click(object sender, EventArgs e) { if (dataTable.Rows.Count == 0) { MessageBox.Show("编辑器不能为空"); } else { if (m_checkedindex == -1) { m_checkedindex = dataTable.Rows.Count - 1; } XmlNode xn = doc.SelectSingleNode("XmlRasterFunctionTemplate"); XmlNodeList xnl = xn.ChildNodes; int i = 0; foreach (XmlNode xn1 in xnl) { if (xn1 is XmlComment) { continue; } //else if (xn1. if (i == (m_checkedindex + 1)) { break; } XmlElement xe = (XmlElement)xn1; if (xe.Name == "Function") { switch (xe.GetAttribute("name")) { case "Pansharpening": { panSharpenFunction panSharpenFunction = new panSharpenFunction(m_raster, xn1); panSharpenFunction.Init(); m_raster = panSharpenFunction.GetRaster(); break; } case "Convolution": { convolutionFunction convolutionFunction = new convolutionFunction(m_raster, xn1); convolutionFunction.underInit(); m_raster = convolutionFunction.GetRaster(); break; } case "Slope": { slopeFunction slopeFunction = new slopeFunction(m_raster, xn1); slopeFunction.Init(); m_raster = slopeFunction.GetRaster(); break; } case "Aspect": { aspectFunction aspectFunction = new aspectFunction(m_raster, xn1); aspectFunction.Init(); m_raster = aspectFunction.GetRaster(); break; } case "stretchFunction": { stretchFunction stretchFunction = new stretchFunction(m_raster, xn1); stretchFunction.Init(); m_raster = stretchFunction.GetRaster(); break; } case "ndviFunction": { ndviFunction ndviFunction = new ndviFunction(m_raster, xn1); ndviFunction.Init(); //ndviFunction.UnderInit(); m_raster = ndviFunction.GetRaster(); break; } case "clipFunction": { clipFunction clipFunction = new clipFunction(m_raster, xn1); clipFunction.Init(); m_raster = clipFunction.GetRaster(); break; } case "hillshadeFunction": { hillshadeFunction hillshadeFunction = new hillshadeFunction(m_raster, xn1); hillshadeFunction.Init(); m_raster = hillshadeFunction.GetRaster(); break; } default: break; } i++; } } } IsFinished = true; }