public virtual void Paint(Graphics gr) { foreach (var linked in Linked) { gr.DrawLink(linked.Pin.Location, Location.Sub(new Point(50, 0))); } var state = gr.Save(); gr.TranslateTransform(Location.X, Location.Y); gr.FillPath(FillColor.Brush(), Path); gr.DrawPath(BorderColor.Pen(), Path); Path.DrawHalo(gr, BorderColor, BorderColor.Pen()); var rect = Path.GetBounds(); rect.Inflate(-5, -5); if (Tag != null) { gr.DrawString(Tag.ToString(), Helper.Font, Brushes.White, rect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); } gr.Restore(state); if (Pin != null) { Pin.Paint(gr); } }
public void Paint(Graphics gr) { if (drag != Point.Empty) { gr.DrawLink(Location, Location.Add(drag)); } var state = gr.Save(); gr.TranslateTransform(Location.X, Location.Y); gr.FillPath(FillColor.Brush(), Path); gr.DrawPath(BorderColor.Pen(), Path); if (drag != Point.Empty) { gr.DrawEllipse(BorderColor.Pen(), drag.X - 5, drag.Y - 5, 10, 10); gr.FillEllipse(FillColor.Brush(), drag.X - 5, drag.Y - 5, 10, 10); } gr.Restore(state); }