¿Cómo dibujar elementos de la interfaz de usuario con los estilos visuales desactivados?

Tengo un control dibujado por el propietario donde necesito dibujar el cuadro de expansión ("más / menos") de una vista de árbol. Con los estilos visuales activados, es fácil, simplemente cree un renderizador para el VisualStyleElement:

VisualStyleElement element = VisualStyleElement.TreeView.Glyph.Opened
VisualStyleRenderer renderer = new VisualStyleRenderer( element );
Size size = renderer.GetPartSize( graphics, ThemeSizeType.True );
...
renderer.DrawBackground( graphics, someRect );

¿Es posible lograr un efecto similar cuando los estilos visuales están desactivados? Sé que hay un ControlPaint clase que puede dibujar controles completos, pero ¿cómo dibujo (y obtengo el tamaño de) solo una parte del Vista de árbol ¿controlar?

preguntado el 08 de noviembre de 11 a las 13:11

1 Respuestas

Sin VisualStyles, creo que los controles más menos son solo llamadas a métodos DrawRectangle y DrawLine.

La parte Rectangle parece que usa el SystemColors.Control color, y la parte Más / Menos parece SystemColors.ControlText (o negro).

enter image description here

respondido 08 nov., 11:18

Esperaba algún enfoque de "nivel superior", pero esto funciona correctamente. - crypto_rsa

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.