warp-winforms-controls

Implements modern WinForms UI using WARP-Toolkit fluent controls, commands, and helper extensions.

1|1|Updated Jun 12, 2022
One-click install
npx skills add https://github.com/KlausLoeffelmann/WinFormsDevTools --skill warp-winforms-controls-klausloeffelmann
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: warp-winforms-controls
Source: https://github.com/KlausLoeffelmann/WinFormsDevTools/tree/main/.github/skills/WARP-WinFormsControls
Command: npx skills add https://github.com/KlausLoeffelmann/WinFormsDevTools --skill warp-winforms-controls-klausloeffelmann

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires WarpToolkit.WinForms, WarpToolkit.WinForms.Extensions, WarpToolkit.WinForms.Specialized.

What problem does it solve? Building modern WinForms interfaces with stock controls means hand-rolling dark mode, wizards, async dialogs, and state persistence. This Skill provides guidance for the WARP-Toolkit packages (WarpToolkit.WinForms, Extensions, Specialized) so you can add fluent controls, MVVM-style commands, and designer-compatible layouts without reinventing them. ## Core Features & Use Cases - Fluent Controls & Layouts: FluentTabControl, FluentMessageBox, WizardContainer, FilePathPicker, BindableComboBox, plus AdornerPanel/AdornerTableLayoutPanel grid layouts with borders and error signalling. - Helpers & Extensions: Strongly-typed control-tree traversal, IValueConverter binding, DataGridView dark mode, form/grid/splitter state persistence via IUserSettingsService, async ShowDialogAsync with typed data contexts, and symbol-font icons. - Specialized Tools: Interactive ConsoleControl for in-process terminals and FilenameDisambiguator for collision-free save/export filenames. - Use Case: You need a modal dialog that returns a typed result from async code. Use ShowDialogAsync(viewModel) to set the form's DataContext, await the DialogResult, and read back the edited view-model properties. ## Quick Start Ask the AI to add a FluentMessageBox confirmation dialog and a WizardContainer-based multi-step setup flow to your WinForms form using the WARP-Toolkit packages.

Frequently Asked Questions about warp-winforms-controls

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a dark-mode tab control to a WinForms app?▼

Use FluentTabControl from WarpToolkit.WinForms, which is dark-mode-aware and drops onto a form like a standard TabControl. You can bind SelectedTab to a view-model property or use it directly in code.

How to show a WinForms dialog asynchronously with a typed result?▼

Call ShowDialogAsync(viewModel) from WarpToolkit.WinForms.Extensions. It sets the form's DataContext to the passed view-model and awaits closing, returning the DialogResult so you can read back edited properties.

Does DataGridView support dark mode in WinForms?▼

System colors alone do not cover all DataGridView surfaces. Gate on Application.IsDarkModeEnabled (.NET 9+) and call ApplyDarkMode() from the WARP extensions to style headers and selection backgrounds.

How do I persist WinForms form bounds and column widths?▼

Use the IUserSettingsService extension methods SaveFormBounds/TryApplyFormBounds, SaveDataGridViewColumnWidths, and SaveSplitterDistance with string keys. Register the service via AddWinFormsUserSettingsService() from the AppServices skill.

Why must InitializeComponent avoid lambdas and helper methods in WinForms?▼

InitializeComponent is a serialization format parsed by the WinForms Designer, not arbitrary C#. Control flow, lambdas, local variables, and custom helpers break the Designer parser, so repetitive instantiate-configure-add code is correct there.

How do I generate collision-free filenames for exports in C#?▼

Use FilenameDisambiguator from WarpToolkit.WinForms.Specialized with a title, base path, extension, and a GenerationStrategy such as TimestampSuffix. Its FullFilename property returns a unique path for save and export features.