Es puro código.
Para conseguir un dibujo sin pixelado utilizo:
-
ControlStyles... con sus atributos para que el estilo y comportamiento sean estables.
- Aprovecho OnPaintBackground() ya que aquí se dibuja antes de mostrar el control, además le incluyo:
e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
Para las sombras:
- Lo hace en dos partes; un rectángulo que va desde el mínimo hasta la mitad del control y otro que va desde la mitad del control hasta el máximo.
- Crea un
LinearGradientBrush con dos colores (Color Sombra y color de fondo) usando un valor Alpha de 255 para un color y 0 para el otro color, de esa forma simula transparencia.
Lo de la rueda es solo un efecto gracias a las sombras, si te fijas bien solo cambia el punto de inicio para dibujar la escala cuando cambia el valor.
No hay ningún efecto físico (nada de velocidad), el efecto se consigue variando la propiedad "Rango visible"...
Que solo permite ver un rango de la escala, si se pone 100 entonces se verá de -100 hasta +100 sin importar el valor actual que apunte el cursor (aguja).
Era simple, yo tampoco lo entendí a la primera, me ayudo un amigo...
----------------
Sobre efectos físicos como rebote o grabedad lo he estado viendo pero no entiendo

, pregunté en el foro de MSDN pero sigo con dudas... me interesaría darle un efecto de tiempo al movimiento de las agujas que seria algo más real en cuanto a controles análogos...
Saludos