private void shapeFillModeButton_DropDownOpening(object sender, EventArgs e)
 {
     shapeFillModeButton.Image = _shapeFillMode.GetAttribute <ToolAttribute>()?.Image;
     foreach (ShapeFillMode value in Enum.GetValues(typeof(ShapeFillMode)))
     {
         var tsmi = new ToolStripMenuItem
         {
             Text    = value.GetAttribute <DescriptionAttribute>()?.Description,
             Image   = value.GetAttribute <ToolAttribute>()?.Image,
             Checked = value == ShapeFillMode
         };
         tsmi.Click += (o, args) => ShapeFillMode = value;
         shapeFillModeButton.DropDownItems.Add(tsmi);
     }
     Invalidate(true);
 }
        public SketchControl()
        {
            InitializeComponent();
            sketchPanel.SetDoubleBuffered();
            _shapeFillMode = ShapeFillMode.FillOnly;
            ShapeFillMode  = ShapeFillMode.StrokeOnly;
            Load          += (sender, args) =>
            {
                StartNewSketch();
                CreateButtons();
                AddToolstripItems();

                _fillColor   = colorSelectControl1.Fill;
                _strokeColor = colorSelectControl1.Stroke;
                colorSelectControl1.FillColorChanged   += (_, __) => _fillColor = colorSelectControl1.Fill;
                colorSelectControl1.StrokeColorChanged += (_, __) => _strokeColor = colorSelectControl1.Stroke;
            };
        }
 private void shapeFillModeButton_ButtonClick(object sender, EventArgs e)
 {
     ShapeFillMode = ShapeFillMode.Switch();
 }