Maravilloso. La clase Paint es terreno virgen para mí. Estamos muy limitados por la falta de documentación los sufridos gamberos...
Tu solución es perfecta. Sólo he modificado un par de cositas para adecuarlas a la idea que yo tengo del Roundpanel, a saber:
- He cambiado la propiedad Picture por la propiedad Image de tipo Image. ¿Por qué? porque si Paint trabaja con image, ¿para qué estar convirtiendo? Se supone que la diferencia es que picture se almacena en el servidor gráfico e Image se almacena en memoria... aunque no tengo muy claro qué implica eso y si sería mejor tejemanejear pictures para ahorrar memoria o qué. De momento lo dejo así para hacer el código más simple y comprensible
- He añadido la propiedad Stretch de tipo boolean, para que la imagen se adapte al tamaño del control... o no, según convenga.
- He modificado la propiedad Border, de boolean a Border, de manera que se pueda elegir el borde como en un panel normal. Las propiedades BorderColor, etc, sólo tendrán sentido cuando se le asigne un border.plain al control, claro. Esto tiene sentido cuando el panel no tiene imagen de fondo que cuando le pones imagen no se nota casi si es Raised o Sunken o inexistente.
Ahora sí que se comporta como buscaba y creo que deja totalmente obsoleto el control PicPanel que tenía hecho. Aunque creo que éste pasará a llamarse PicPanel porque es más significativo, creo, el tener una imagen de fondo que el tener las esquinas redondeadas... RoundPicPanel, me parece excesivo...
Ahora vamos a sacarle jugo a este pequeño tesoro.
Saludos y muchísimas gracias.