public void PointChangedHandler(object sender, ModifiedEventArgs e)
 {
     if (Changed != null)
     {
         Changed(this, e);
     }
 }
        //general
        private void onChanged(object sender, EventArgs e)
        {
            this.Refresh();
            //update ui
            ModifiedEventArgs args = e as ModifiedEventArgs;

            if (args != null && (args.Action == Action.Cleared ||
                                 (args.Action == Action.Removed && _selection.Contains(args.Point))))
            {
                Selection = null;
            }
            else
            {
                RaiseGradientChanged();
            }
        }