<< All versions

Skill v1.0.0

currentTrusted Publisher100/100
microsoft/upgrade-agent-plugins/managing-winforms-rendering
──Details
PublishedOctober 7, 2026 at 01:27 AM
Content Hashsha256:e33dd5af9f5bf249...
Git SHA
──Files
Files (1 file, 2.4 KB)
SKILL.md2.4 KBactive
SKILL.md · 57 lines · 2.4 KB

version: "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

Detailed Guidance

Read Detailed guide for comprehensive patterns, examples, and troubleshooting.

Workflow

  1. Confirm the scenario matches the triggers in this skill.
  2. Apply the baseline pattern from this file.
  3. Read Detailed guide for advanced or edge-case handling.
  4. Validate changes with an actual build and runtime check.
All versions