
Skill
managing-winforms-high-dpi-layout
design high-DPI responsive WinForms layouts
Description
Implements WinForms high-DPI fluent layouts using TableLayoutPanel, FlowLayoutPanel, and DPI-aware design patterns. Use when creating responsive form layouts that must scale across different DPI settings, implementing Per Monitor V2 (PerMonitorV2) DPI awareness, working with TableLayoutPanel.RowStyles/ColumnStyles, using FlowLayoutPanel for dynamic layouts, replacing fixed pixel positioning with container-based layout, troubleshooting DPI scaling issues, or structuring nested layout containers. Also triggers for "TableLayoutPanel", "FlowLayoutPanel", "high DPI WinForms", "PerMonitorV2", "DPI aware layout", "responsive WinForms", "scale UI", "AutoScaleMode", and "DPI scaling".
SKILL.md
WinForms High-DPI Fluent Layout Guide
Fluent layout strategies for scalable, DPI-aware WinForms form designs using TableLayoutPanel and FlowLayoutPanel. All layout code shown here must follow the managing-winforms-designer-code skill rules ─ control configuration belongs in InitializeComponent inside the .Designer.cs file.
When to Use This Skill
Use this skill when:
- Designing new or modifying existing forms or UserControls with responsive layouts
- Implementing fluent layout scenarios using
TableLayoutPanelorFlowLayoutPanel - Ensuring DPI compatibility, specifically for Per Monitor V2 High-DPI modes
- Creating complex nested layouts with proper scaling
- Implementing fullscreen or presentation modes
- Designing modal dialogs with proper layout structure
- Reviewing whether WinForms Forms/UserControls are "designed according to standard", "not designed properly", "badly designed", "layout looks wrong", or similar; pair this with
managing-winforms-designer-codeso Designer serialization rules are checked too.
Designer Compatibility Note
CRITICAL: All control instantiation, property assignment, and layout wiring shown in this skill belongs inside InitializeComponent in the .Designer.cs file. Do NOT extract control configuration into helper methods like CreateDetailsPanel() or SetupLayout() ─ this breaks the WinForms Designer. See the managing-winforms-designer-code skill for the authoritative rules.
Related Skills
- WinForms Designer Code
- WinForms Development
- WinForms Custom Controls and UserControls
- WinForms Rendering
- WinForms Data Binding
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.
More skills from the upgrade-agent-plugins repository
View all 19 skillsconverting-to-cpm
migrate .NET projects to Central Package Management
Jul 18.NETMicrosoftMigrationcreating-winforms-custom-controls
create custom WinForms controls
Jul 3.NETWindowsWinUImanaging-winforms-mvvm
implement MVVM pattern in WinForms
Jul 18.NETWindowsWinUImigrating-aspnet-framework-to-core
migrate ASP.NET Framework to Core
Jul 3.NETASP.NET CoreBackendMigrationmigrating-documentdb-to-cosmos
migrate DocumentDB to Cosmos DB
Jul 3AzureCosmos DBDatabaseMigrationmigrating-global-asax
migrate Global.asax to ASP.NET Core middleware
Jul 7ASP.NET CoreMicrosoftMigrationModernization
More from Microsoft
View publisherrushstack-best-practices
manage Rush monorepos with best practices
rushstack
Apr 6EngineeringLocal DevelopmentMicrosoftProject Management +1azure-ai-agents-persistent-dotnet
build AI agents with Azure .NET SDK
skills
Jul 3.NETAgentsAzureLLMazure-ai-anomalydetector-java
build anomaly detection applications with Java
skills
May 13AnalyticsAzureData AnalysisJava +2azure-ai-contentsafety-java
build content moderation applications with Azure AI
skills
Jul 7AI InfrastructureAzureJavaSecurityazure-ai-contentsafety-py
detect harmful content with Azure AI Content Safety
skills
Jul 18AzureComplianceLLMMicrosoft +2azure-ai-language-conversations-py
implement conversational language understanding with Python
skills
Jul 18AnalyticsAzureLLMPython