Skill v1.0.0
currentTrusted Publisher100/100version: "1.0.0"
name: managing-winforms-rendering description: > Implements custom painting and rendering in WinForms using GDI and GDI+. Use when overriding OnPaint or OnPaintBackground, creating owner-drawn controls, working with Graphics objects, drawing primitives (DrawLine, DrawRectangle, FillEllipse), measuring or rendering text with TextRenderer or Graphics.DrawString, handling Paint events, using BufferedGraphics for double-buffering, or managing resource disposal for Pen, Brush, Font, and Graphics objects. Also triggers for "custom paint WinForms", "override OnPaint", "Graphics object", "GDI+ rendering", "DrawString", "TextRenderer", "owner-drawn control", "double buffer", and "dispose Graphics resources". metadata: discovery: lazy traits: (.NET|CSharp|VisualBasic|DotNetCore) & WindowsForms
WinForms Custom Rendering Guide
Custom rendering in WinForms enables complete control over how controls paint themselves, from simple borders to complex visualizations using GDI+ (modern, object-oriented) and GDI (legacy, performance-optimized).
When to Use This Skill
Use this skill when:
- Implementing custom OnPaint methods
- Creating custom controls that render their content themselves
- Working with Graphics, Pen, Brush, or Font objects
- Drawing shapes, lines, or custom graphics in a DC painting context
- Rendering and measuring text
- Implementing double buffering to avoid flicker
- Optimizing rendering performance
- Supporting high-DPI displays
- Implementing DarkMode-aware rendering (.NET 9+)
- Troubleshooting paint artifacts or flicker
- Managing GDI+ resource disposal
Related Skills
- building-winforms-applications
- managing-winforms-data-binding
- managing-winforms-mvvm
- managing-winforms-high-dpi-layout
- creating-winforms-custom-controls
Detailed Guidance
Read Detailed guide for comprehensive patterns, examples, and troubleshooting.
Workflow
- Confirm the scenario matches the triggers in this skill.
- Apply the baseline pattern from this file.
- Read Detailed guide for advanced or edge-case handling.
- Validate changes with an actual build and runtime check.