Esempio n. 1
0
        /// <summary>
        /// Render a plum colored circle at pre-render tick label time
        /// </summary>
        /// <param name="sender">KnobControl</param>
        /// <param name="e">PreRenderEventArgs</param>
        private void PreRenderTickLabel(object sender, PreRenderEventArgs e)
        {
            KnobControl kc = sender as KnobControl;

            if (kc != null)
            {
                // Locate where the current "value label" is located,
                // and then render our circle accordingly

                Point pt = GetLabelPoint(kc, e);

                e.Graphics.FillEllipse(Brushes.Plum,
                                       new Rectangle(pt.X, pt.Y, 20, 20));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Returns tick label point
        /// </summary>
        /// <returns>Upper left tick label rect of the control</returns>
        private Point GetLabelPoint(KnobControl kc, PreRenderEventArgs e)
        {
            decimal count = kc.MaxValue - kc.MinValue;

            double rad = GetRadians(
                (float)((kc.SweepAngle * kc.Value) / count + kc.StartAngle));

            int x  = e.Bounds.X + e.Bounds.Width / 2;
            int dx = e.Bounds.Width / 2;

            Point pt = new Point();

            pt.X = (int)(Math.Cos(rad) * dx + x - 10);
            pt.Y = (int)(Math.Sin(rad) * dx + x - 10);

            return(pt);
        }