No depende del lenguaje mas que para facilitarte las cosas. La programacion orientada a objetos hace maravillas para lograr esos efectos sin tener volverse loco en el proceso. De hecho veo que delphi es mas potente en ese sentido y toda esa potencia esta copiada en csharp pero de forma menos elegante.
Pues puedes crear tus propios componentes a partir de un custom o un control como un paintbox, hacer que responda a mayor variedad de eventos y controlar tu mismo todo el proceso de pintado de los botones, textos, grids, nuevos eventos, etc, etc, etc. En mi caso utilice un Tpaintbox para hacer un componente: un boton que queria que tuviera apariencia y comportamiento especial. En delphi seguramente viste que hay versiones "custom" de los controles mas importantes y estan pensados para que a partir de ellos crees tu propia versión mas "colorida y dinámica". Claro que la forma mas rapida es buscar componentes ya hechos o comprar alguno, en algunos casos solo tienes que arrastrar y soltar el componente en tu aplicación, elegir el skin que te gusta y toda tu aplicacion tiene un nuevo "look and feel".