protected static bool IsPresentationMarker(SvgStyleableElement styleElm) { if (!string.IsNullOrWhiteSpace(styleElm.GetAttribute("marker"))) { return(true); } SvgElement parentElm = styleElm.ParentNode as SvgElement; if (parentElm == null) { return(false); } switch (parentElm.LocalName) { case "g": if (!string.IsNullOrWhiteSpace(parentElm.GetAttribute("marker"))) { return(true); } break; case "use": if (!string.IsNullOrWhiteSpace(parentElm.GetAttribute("marker"))) { return(true); } //TODO--PAUL break; } return(false); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (LineNode != null) { Ftj = LineNode.GetAttribute("ftj") == "true"; Ltj = LineNode.GetAttribute("ltj") == "true"; } }
private PSPDEV createsub(SvgElement element) { PSPDEV pspDev = new PSPDEV(); pspDev.SUID = Guid.NewGuid().ToString(); pspDev.EleID = element.ID; pspDev.SvgUID = svgid; PSPDEV pspDev2 = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev); if (pspDev2 == null) { pspDev.Number = -1; pspDev.FirstNode = -1; pspDev.LastNode = -1; pspDev.Type = "Use"; pspDev.Lable = "变电站"; pspDev.Name = element.GetAttribute("info-name"); IList list = Services.BaseService.GetList("SelectsubstationByWhere", "eleid='" + pspDev.EleID + "'"); if (list.Count > 0) { substation sub = list[0] as substation; pspDev.Name = sub.EleName; pspDev.VoltR = double.Parse(sub.ObligateField1); //电压 pspDev.Burthen = sub.Number; //容量 } Services.BaseService.Create <PSPDEV>(pspDev); } else { pspDev = pspDev2; } return(pspDev); }
// Methods public ConnectShape(SvgElement connect) { this.graphPath = null; this.element = connect; this.id = connect.GetAttribute("id"); this.graphPath = ((ConnectLine)connect).ConnectPath(); }
public static bool HasRequiredFeatures(SvgElement svgElement) { bool hasRequiredFeatures = true; if (svgElement.GetAttribute("requiredFeatures", out var requiredFeaturesString) == true) { if (string.IsNullOrEmpty(requiredFeaturesString)) { hasRequiredFeatures = false; } else { var features = requiredFeaturesString.Trim().Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); if (features.Length > 0) { foreach (var feature in features) { if (!s_supportedFeatures.Contains(feature)) { hasRequiredFeatures = false; break; } } } else { hasRequiredFeatures = false; } } } return(hasRequiredFeatures); }
public virtual bool NeedRender(WpfDrawingRenderer renderer) { if (_svgElement.GetAttribute("display") == "none") { return(false); } return(true); }
private void AddMarker(Marker svgElement, string attributeName, bool isendarrow) { if (svgElement != null) { SvgDocument fadde1 = base.svgElement.OwnerDocument; bool flag1 = fadde1.AcceptChanges; string text1 = svgElement.GetAttribute("id").Trim(); string text2 = string.Empty; if (text1.Length > 0) { if (isendarrow) { text1 = "end" + text1; } else { text1 = "start" + text1; } } text2 = "url(#" + text1 + ")"; if (text1.Length == 0) { text2 = string.Empty; } string text3 = (base.svgElement as SvgElement).GetAttribute(attributeName); if (text2 != text3) { string[] textArray1 = new string[] { "marker" }; Marker cfb1 = NodeFunc.GetRefNode(text1, fadde1) as Marker; if (cfb1 == null) { cfb1 = svgElement; if (isendarrow) { //fadde1.AcceptChanges = false; for (int num1 = 0; num1 < cfb1.GraphList.Count; num1++) { SvgElement facbce1 = cfb1.GraphList[num1] as SvgElement; if (facbce1 != null) { string text4 = facbce1.GetAttribute("transform"); text4 = "matrix(-1,0,0,1,0,0) " + text4; facbce1.SetAttribute("transform", text4); text4 = null; } } } cfb1.SetAttribute("id", text1); fadde1.AddDefsElement(cfb1); } AttributeFunc.SetAttributeValue(base.svgElement, attributeName, text2); } fadde1.AcceptChanges = flag1; } }
public virtual bool NeedRender(WpfDrawingRenderer renderer) { if (string.Equals(_svgElement.GetAttribute(CssConstants.PropDisplay), CssConstants.ValNone, StringComparison.OrdinalIgnoreCase)) { return(false); } return(true); }
public virtual bool NeedRender(WpfDrawingRenderer renderer) { // FC Fix: Checks if element is visible by checking element's style (display and visiblity) if (_svgElement is SvgStyleableElement) { if (_svgElement.GetAttribute("display").ToLower().Trim().Equals("none") || ((SvgStyleableElement)((SvgElement)_svgElement)).GetPropertyValue("display").ToLower().Trim().Equals("none") || ((SvgStyleableElement)((SvgElement)_svgElement)).GetPropertyValue("visibility").ToLower().Trim().Equals("hidden")) { return(false); } } // Original if (_svgElement.GetAttribute("display").ToLower().Trim().Equals("none")) { return(false); } return(true); }
public static bool HasSystemLanguage(SvgElement svgElement) { bool hasSystemLanguage = true; if (svgElement.GetAttribute("systemLanguage", out var systemLanguageString) == true) { if (string.IsNullOrEmpty(systemLanguageString)) { hasSystemLanguage = false; } else { var languages = systemLanguageString.Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (languages.Length > 0) { hasSystemLanguage = false; var systemLanguage = s_systemLanguageOverride != null ? s_systemLanguageOverride : CultureInfo.InstalledUICulture; foreach (var language in languages) { try { var languageCultureInfo = CultureInfo.CreateSpecificCulture(language.Trim()); if (systemLanguage.Equals(languageCultureInfo) || systemLanguage.TwoLetterISOLanguageName == languageCultureInfo.TwoLetterISOLanguageName) { hasSystemLanguage = true; } } catch { } } } else { hasSystemLanguage = false; } } } return(hasSystemLanguage); }
private PSPDEV createline(SvgElement element) { PSPDEV pspDev = new PSPDEV(); pspDev.SUID = Guid.NewGuid().ToString(); pspDev.EleID = element.ID; pspDev.SvgUID = svgid; PSPDEV pspDev2 = (PSPDEV)Services.BaseService.GetObject("SelectPSPDEVBySvgUIDandEleID", pspDev); if (pspDev2 == null) { pspDev.Number = -1; pspDev.FirstNode = -1; pspDev.LastNode = -1; pspDev.Type = "Polyline"; pspDev.Lable = "支路"; pspDev.Name = element.GetAttribute("info-name"); IList list = Services.BaseService.GetList("SelectLineInfoByWhere", "eleid='" + pspDev.EleID + "'"); if (list.Count > 0) { LineInfo line = list[0] as LineInfo; pspDev.Name = line.LineName; pspDev.VoltR = double.Parse(line.Voltage); pspDev.LineStatus = line.ObligateField1; try { pspDev.LineLength = double.Parse(line.Length); } catch { } pspDev.LineType = line.LineType; } Services.BaseService.Create <PSPDEV>(pspDev); } else { pspDev = pspDev2; } return(pspDev); }
private void AddExtraLinkInformation(DrawingGroup group, SvgElement element) { string linkColor = element.GetAttribute("color"); if (!String.IsNullOrEmpty(linkColor)) { SvgLink.SetColor(group, linkColor); } string linkPartsId = element.GetAttribute("partsid"); if (!String.IsNullOrEmpty(linkPartsId)) { SvgLink.SetPartsId(group, linkPartsId); } string linkType = element.GetAttribute("type"); if (!String.IsNullOrEmpty(linkType)) { SvgLink.SetPartsId(group, linkType); } string linkNumber = element.GetAttribute("num"); if (!String.IsNullOrEmpty(linkNumber)) { SvgLink.SetPartsId(group, linkNumber); } string linkPin = element.GetAttribute("pin"); if (!String.IsNullOrEmpty(linkPin)) { SvgLink.SetPartsId(group, linkPin); } string linkLineId = element.GetAttribute("lineid"); if (!String.IsNullOrEmpty(linkLineId)) { SvgLink.SetPartsId(group, linkLineId); } }
private void RenderTextPath(SvgTextPathElement textPath, ref Point ctp, double rotate, WpfTextPlacement placement) { if (textPath.ChildNodes == null || textPath.ChildNodes.Count == 0) { return; } SvgElement targetPath = textPath.ReferencedElement as SvgElement; if (targetPath == null) { return; } Geometry textGeometry = CreateGeometry(targetPath, true); if (textGeometry == null) { return; } PathGeometry pathGeometry = textGeometry as PathGeometry; if (pathGeometry == null) { pathGeometry = textGeometry.GetFlattenedPathGeometry(); } // If the path has a transform, apply it to get a transformed path... if (targetPath.HasAttribute("transform")) { var svgTransform = new SvgTransform(targetPath.GetAttribute("transform")); var svgMatrix = svgTransform.Matrix; if (!svgMatrix.IsIdentity) { pathGeometry.Transform = new MatrixTransform(svgMatrix.A, svgMatrix.B, svgMatrix.C, svgMatrix.D, svgMatrix.E, svgMatrix.F); var transformPath = new PathGeometry(); transformPath.AddGeometry(pathGeometry); pathGeometry = transformPath; } } WpfPathTextBuilder pathBuilder = new WpfPathTextBuilder(_textElement); pathBuilder.BeginTextPath(textPath); var comparer = StringComparison.OrdinalIgnoreCase; XmlNodeType nodeType = XmlNodeType.None; int nodeCount = textPath.ChildNodes.Count; for (int i = 0; i < nodeCount; i++) { XmlNode child = textPath.ChildNodes[i]; nodeType = child.NodeType; if (nodeType == XmlNodeType.Text) { var nodeText = GetText(textPath, child); if (i == (nodeCount - 1)) { // No need to render the last white space... if (nodeCount == 1) { if (nodeText.StartsWith(NonBreaking, StringComparison.OrdinalIgnoreCase)) { if (!nodeText.EndsWith(NonBreaking, StringComparison.OrdinalIgnoreCase)) { nodeText = nodeText.TrimEnd(); } } else if (nodeText.EndsWith(NonBreaking, StringComparison.OrdinalIgnoreCase)) { nodeText = nodeText.TrimStart(); } else { nodeText = nodeText.Trim(); } } else { if (!nodeText.EndsWith(NonBreaking, StringComparison.OrdinalIgnoreCase)) { nodeText = nodeText.TrimEnd(); } } } else if (i == 0) { nodeText = nodeText.Trim(); } RenderTextPath(textPath, pathBuilder, nodeText, new Point(ctp.X, ctp.Y), rotate, placement); } else if (nodeType == XmlNodeType.Element) { string nodeName = child.Name; if (string.Equals(nodeName, "tref", comparer)) { RenderTRefPath((SvgTRefElement)child, pathBuilder, ref ctp); } else if (string.Equals(nodeName, "tspan", comparer)) { RenderTSpanPath((SvgTSpanElement)child, pathBuilder, ref ctp); } } } WpfTextStringFormat stringFormat = GetTextStringFormat(textPath); //ISvgAnimatedLength pathOffset = textPath.StartOffset; //SvgTextPathMethod pathMethod = (SvgTextPathMethod)textPath.Method.BaseVal; //SvgTextPathSpacing pathSpacing = (SvgTextPathSpacing)textPath.Spacing.BaseVal; pathBuilder.RenderTextPath(_drawContext, pathGeometry, stringFormat.Alignment); pathBuilder.EndTextPath(); }
private Layer CopyLayer(Layer layer) { Layer layer2 = Layer.CreateNew(layer.Label + " 副本", this.SymbolDoc); layer2.SetAttribute("ParentID", layer.GetAttribute("ParentID")); //foreach (SvgElement g in layer.GraphList) //{ // layer2.GraphList.Add(g); //} SVG_LAYER la = new SVG_LAYER(); la.SUID = layer.ID; la.svgID = symbolDoc.SvgdataUid; la = (SVG_LAYER)Services.BaseService.GetObject("SelectSVG_LAYERByKey", la); if (la != null) { la.SUID = layer2.ID; la.NAME = layer2.Label; Services.BaseService.Create <SVG_LAYER>(la); } this.SymbolDoc.NumberOfUndoOperations = (2 * layer2.GraphList.Count) + 200; SvgElementCollection sc = layer.GraphList; for (int i = layer.GraphList.Count - 1; i >= 0; i--) { SvgElement element = sc[i] as SvgElement; SvgElement temp = element.Clone() as SvgElement; //if (temp.Name=="use"){ if (temp.GetAttribute("CopyOf") == "") { temp.SetAttribute("CopyOf", temp.ID); } //else //{ // temp.SetAttribute("CopyOf", temp.ID); //} //} IGraph graph = (IGraph)layer2.AddElement(temp); graph.Layer = layer2; /* LineInfo _line = new LineInfo(); * _line.EleID = element.ID; * _line.SvgUID = this.SymbolDoc.SvgdataUid; * IList lineInfoList = Services.BaseService.GetList("SelectLineInfoByEleID", _line); * foreach (LineInfo line in lineInfoList) * { * line.UID = Guid.NewGuid().ToString(); * line.LayerID = layer2.ID; * line.EleID = temp.ID; * Services.BaseService.Create<LineInfo>(line); * } * glebeProperty gle = new glebeProperty(); * gle.EleID = element.ID; * gle.SvgUID = this.SymbolDoc.SvgdataUid; * IList gleProList = Services.BaseService.GetList("SelectglebePropertyByEleID", gle); * foreach (glebeProperty gleP in gleProList) * { * gleP.UID = Guid.NewGuid().ToString(); * gleP.LayerID = layer2.ID; * gleP.EleID = temp.ID; * Services.BaseService.Create<glebeProperty>(gleP); * } * substation _sub = new substation(); * _sub.EleID = element.ID; * _sub.SvgUID = this.SymbolDoc.SvgdataUid; * IList substationList = Services.BaseService.GetList("SelectsubstationByEleID", _sub); * foreach (substation sub in substationList) * { * sub.UID = Guid.NewGuid().ToString(); * sub.LayerID = layer2.ID; * sub.EleID = temp.ID; * Services.BaseService.Create<substation>(sub); * }*/ } this.SymbolDoc.NotifyUndo(); return(layer2); }
private Layer CopyLayer(Layer layer) { Layer layer2 = Layer.CreateNew(layer.Label + " 副本", this.SymbolDoc); //foreach (SvgElement g in layer.GraphList) //{ // layer2.GraphList.Add(g); //} this.SymbolDoc.NumberOfUndoOperations = (2 * layer2.GraphList.Count) + 200; SvgElementCollection sc = layer.GraphList; for (int i = layer.GraphList.Count - 1; i >= 0; i--) { SvgElement element = sc[i] as SvgElement; SvgElement temp = element.Clone() as SvgElement; //if (temp.Name=="use"){ if (temp.GetAttribute("CopyOf") == "") { temp.SetAttribute("CopyOf", temp.ID); } IGraph graph = (IGraph)layer2.AddElement(temp); graph.Layer = layer2; LineInfo _line = new LineInfo(); _line.EleID = element.ID; _line.SvgUID = this.SymbolDoc.SvgdataUid; IList lineInfoList = Services.BaseService.GetList("SelectLineInfoByEleID", _line); foreach (LineInfo line in lineInfoList) { line.UID = Guid.NewGuid().ToString(); line.LayerID = layer2.ID; line.EleID = temp.ID; Services.BaseService.Create <LineInfo>(line); } glebeProperty gle = new glebeProperty(); gle.EleID = element.ID; gle.SvgUID = this.SymbolDoc.SvgdataUid; IList gleProList = Services.BaseService.GetList("SelectglebePropertyByEleID", gle); foreach (glebeProperty gleP in gleProList) { gleP.UID = Guid.NewGuid().ToString(); gleP.LayerID = layer2.ID; gleP.EleID = temp.ID; Services.BaseService.Create <glebeProperty>(gleP); } substation _sub = new substation(); _sub.EleID = element.ID; _sub.SvgUID = this.SymbolDoc.SvgdataUid; IList substationList = Services.BaseService.GetList("SelectsubstationByEleID", _sub); foreach (substation sub in substationList) { sub.UID = Guid.NewGuid().ToString(); sub.LayerID = layer2.ID; sub.EleID = temp.ID; Services.BaseService.Create <substation>(sub); } } this.SymbolDoc.NotifyUndo(); return(layer2); }
private Layer CopyLayer2(Layer layer, string textname) { string layerlabelf = layer.Label.Substring(4); string layer2name = textname + layerlabelf; int j = 0; for (int i = 0; i < checkedListBox1.Items.Count; i++) { if (checkedListBox1.Items[i].ToString() == layer2name) { j = 1; } //else // j = 0; } Layer layer2 = null; if (j == 0) { layer2 = Layer.CreateNew(textname + layerlabelf, this.SymbolDoc); this.SymbolDoc.NumberOfUndoOperations = (2 * layer2.GraphList.Count) + 200; SvgElementCollection sc = layer.GraphList; for (int i = layer.GraphList.Count - 1; i >= 0; i--) { SvgElement element = sc[i] as SvgElement; SvgElement temp = element.Clone() as SvgElement; if (temp.GetAttribute("CopyOf") == "") { temp.SetAttribute("CopyOf", temp.ID); } IGraph graph = (IGraph)layer2.AddElement(temp); graph.Layer = layer2; //LineInfo _line = new LineInfo(); //_line.EleID = element.ID; //_line.SvgUID = this.SymbolDoc.SvgdataUid; //IList lineInfoList = Services.BaseService.GetList("SelectLineInfoByEleID", _line); PSPDEV _line = new PSPDEV(); _line.EleID = element.ID; _line.SvgUID = this.SymbolDoc.SvgdataUid; IList lineInfoList = Services.BaseService.GetList("SelectPSPDEVBySvgUIDandEleID", _line); foreach (PSPDEV line in lineInfoList) { line.SUID = Guid.NewGuid().ToString(); line.LayerID = layer2.ID; line.EleID = temp.ID; Services.BaseService.Create <PSPDEV>(line); } glebeProperty gle = new glebeProperty(); gle.EleID = element.ID; gle.SvgUID = this.SymbolDoc.SvgdataUid; IList gleProList = Services.BaseService.GetList("SelectglebePropertyByEleID", gle); foreach (glebeProperty gleP in gleProList) { gleP.UID = Guid.NewGuid().ToString(); gleP.LayerID = layer2.ID; gleP.EleID = temp.ID; Services.BaseService.Create <glebeProperty>(gleP); } substation _sub = new substation(); _sub.EleID = element.ID; _sub.SvgUID = this.SymbolDoc.SvgdataUid; IList substationList = Services.BaseService.GetList("SelectsubstationByEleID", _sub); foreach (substation sub in substationList) { sub.UID = Guid.NewGuid().ToString(); sub.LayerID = layer2.ID; sub.EleID = temp.ID; Services.BaseService.Create <substation>(sub); } } } this.SymbolDoc.NotifyUndo(); return(layer2); }
public void OnMouseUp(MouseEventArgs e) { this.tempPath.Reset(); if (((this.graph != null) && (((SvgElement)this.graph).ParentNode != null)) && ((e.Button == MouseButtons.Left) && this.mousedown)) { this.mousedown = false; if ((this.operate == PolyOperate.MovePoint) || (this.operate == PolyOperate.MovePath)) { PointF tf1 = this.mouseAreaControl.PicturePanel.PointToView(new PointF((float)e.X, (float)e.Y)); SizeF ef1 = this.mouseAreaControl.PicturePanel.GridSize; float single1 = ef1.Height; float single2 = ef1.Width; if (this.mouseAreaControl.PicturePanel.SnapToGrid) { int num1 = (int)((tf1.X + (single2 / 2f)) / single2); int num2 = (int)((tf1.Y + (single1 / 2f)) / single1); tf1 = (PointF) new Point((int)(num1 * single2), (int)(num2 * single1)); } tf1 = this.mouseAreaControl.PicturePanel.PointToSystem(tf1); switch (this.operate) { case PolyOperate.MovePath: { PointF tf2 = this.mouseAreaControl.PicturePanel.PointToSystem(this.startpoint); Matrix matrix1 = new Matrix(); matrix1.Translate(tf1.X - tf2.X, tf1.Y - tf2.Y); matrix1.TransformPoints(this.points); break; } case PolyOperate.MovePoint: { if ((this.moveindex >= 0) && (this.moveindex < this.points.Length)) { this.points[this.moveindex] = tf1; if (this.graph is ConnectLine) { //连接线 bool flag2 = false; ConnectLine cebfd1 = this.graph as ConnectLine; if (this.connectGraph == null) { if (this.moveindex == 0) { string text3 = cebfd1.GetAttribute("start"); if ((text3 != null) && (text3.Length > 0)) { if (cebfd1.StartGraph != null) { cebfd1.StartGraph.ConnectLines.Remove(cebfd1); } AttributeFunc.SetAttributeValue(cebfd1, "start", string.Empty); flag2 = true; } float single11 = tf1.X; if (cebfd1.GetAttribute("x1") != single11.ToString()) { AttributeFunc.SetAttributeValue(cebfd1, "x1", single11.ToString()); flag2 = true; } single11 = tf1.Y; if (cebfd1.GetAttribute("y1") != single11.ToString()) { AttributeFunc.SetAttributeValue(cebfd1, "y1", single11.ToString()); flag2 = true; } } else { string text2 = cebfd1.GetAttribute("end"); if ((text2 != null) && (text2.Length > 0)) { if (cebfd1.EndGraph != null) { cebfd1.EndGraph.ConnectLines.Remove(cebfd1); } AttributeFunc.SetAttributeValue(cebfd1, "end", string.Empty); flag2 = true; } float single12 = tf1.X; if (cebfd1.GetAttribute("x2") != single12.ToString()) { AttributeFunc.SetAttributeValue(cebfd1, "x2", single12.ToString()); flag2 = true; } single12 = tf1.Y; if (cebfd1.GetAttribute("y2") != single12.ToString()) { AttributeFunc.SetAttributeValue(cebfd1, "y2", single12.ToString()); flag2 = true; } } } else { SvgElement ab1 = this.connectGraph as SvgElement; string text3 = ab1.GetAttribute("id"); if ((text3 == null) || (text3.Trim().Length == 0)) { text3 = CodeFunc.CreateString(this.mouseAreaControl.SVGDocument, ab1.LocalName); AttributeFunc.SetAttributeValue(ab1, "id", text3); } if (this.moveindex == 0) { text3 = "#" + text3; using (Matrix matrix1 = ((IGraph)ab1).GraphTransform.Matrix.Clone()) { PointF[] tfArray3 = ((IGraph)ab1).ConnectPoints.Clone() as PointF[]; matrix1.TransformPoints(tfArray3); int num1 = Array.IndexOf(tfArray3, this.connectPoint); if ((num1 >= 0) && (num1 < tfArray3.Length)) { text3 = text3 + "." + num1.ToString(); } tfArray3 = null; } if (text3 != cebfd1.GetAttribute("start")) { IGraph oldgraph = cebfd1.StartGraph; if (oldgraph != null) { oldgraph.ConnectLines.Remove(cebfd1); } AttributeFunc.SetAttributeValue(cebfd1, "start", text3); flag2 = true; } } else { text3 = "#" + text3; using (Matrix matrix3 = ((IGraph)ab1).GraphTransform.Matrix.Clone()) { PointF[] tfArray3 = ((IGraph)ab1).ConnectPoints.Clone() as PointF[]; matrix3.TransformPoints(tfArray3); int num2 = Array.IndexOf(tfArray3, this.connectPoint); if ((num2 >= 0) && (num2 < tfArray3.Length)) { text3 = text3 + "." + num2.ToString(); } tfArray3 = null; } if (text3 != cebfd1.GetAttribute("end")) { IGraph oldgraph = cebfd1.EndGraph; if (oldgraph != null) { oldgraph.ConnectLines.Remove(cebfd1); } AttributeFunc.SetAttributeValue(cebfd1, "end", text3); flag2 = true; } } } if (flag2) { this.mouseAreaControl.PicturePanel.InvalidateElement(this.connectGraph as SvgElement); } } } break; } } Matrix matrix2 = this.graph.GraphTransform.Matrix.Clone(); matrix2.Invert(); if (this.points.Length > 0) { matrix2.TransformPoints(this.points); } SvgDocument document1 = this.mouseAreaControl.SVGDocument; bool flag1 = document1.AcceptChanges; document1.AcceptChanges = true; string text1 = string.Empty; int num3 = 0; PointF[] tfArray1 = this.points; for (int num4 = 0; num4 < tfArray1.Length; num4++) { PointF tf3 = tfArray1[num4]; text1 = text1 + tf3.X.ToString() + " " + tf3.Y.ToString(); if (num3 < (this.points.Length - 1)) { text1 = text1 + ","; } num3++; } this.mouseAreaControl.PicturePanel.InvalidateElement((SvgElement)this.graph); document1.AcceptChanges = true; this.UpdateGraph(text1); document1.AcceptChanges = flag1; ((SvgElement)this.graph).pretime = -1; this.mouseAreaControl.Invalidate(); this.mouseAreaControl.PicturePanel.InvalidateElement((SvgElement)this.graph); } } }