Pregunta

Quiero duplicar el búfer de un control personalizado que contiene botones. He intentado varias formas de duplicar el control; SetStyle, BufferedGraphicsContext y dibujar en un mapa de bits. Todos estos funcionan bien para el dibujo personalizado del control, pero ninguno de ellos maneja el dibujo del botón a un búfer posterior. ¿Cómo logro esto?

¿Fue útil?

Solución

Técnicamente no puedes, y realmente no deberías necesitarlo si son botones estándar de .NET WinForms.

Los propios botones controlan eso a través de la propiedad protegida DoubleBuffered. La única forma de acceder a esto sería derivar una nueva clase del botón S.W.F.B e implementar código para habilitar la propiedad DoubleBuffered en instancias de esa clase (probablemente lo haría en el constructor). Finalmente, use objetos de esa nueva clase en su formulario en lugar de botones S.W.F.

Sin embargo, según recuerdo, los botones se basan exclusivamente en WinAPI; no son GDI +. Como resultado, no debería necesitar duplicar en búfer su dibujo. Dicho esto, no conozco su escenario de uso y no sé qué síntomas muestra su aplicación, por lo que podría estar equivocado. :)

Puede considerar consultar el libro Formularios de Windows Pro .NET 2.0 y controles personalizados en C # . Todo esto se resumió a partir de la información en ese libro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top