protected override void OnPaint(PaintEventArgs pe) { int y = 0; if (!IsSoftRefresh) { DrawnNodes.Clear(); foreach (var node in Nodes) { node.Drawn = false; node.ZIndex = 0; } for (int i = 0; i < Nodes.Count(); i++) { CalculateChildren(pe.Graphics, Nodes.ElementAt(i), 0, ref y, true); } } foreach (var item in DrawnNodes.OrderBy(r => r.ZIndex)) { Draw(pe.Graphics, item); } if (LastClickDrag) { pe.Graphics.DrawLine(Pens.Red, new Point(0, LatchPoint.Y), new Point(this.Width, LatchPoint.Y)); } IsSoftRefresh = false; }
private void MouseMoveCascade(object sender, MouseEventArgs e) { foreach (var item in DrawnNodes.OrderBy(r => r.ZIndex)) { if (item.Contains(e.Location)) { MouseMoveOnElem(item, e); break; } } }