$npx -y skills add DevExpress/agent-skills --skill devexpress-winforms-loading-indicatorsDevExpress WinForms Loading Indicators — SplashScreenManager (namespace DevExpress.XtraSplashScreen) is the single entry point. Covers four types: (1) Splash Screen for app startup — Fluent (ShowFluentSplashScreen with FluentSplashScreenOptions, FluentLoadingIndicatorType Dots/Ri
| 1 | # DevExpress WinForms Loading Indicators |
| 2 | |
| 3 | `DevExpress.XtraSplashScreen.SplashScreenManager` is the single static component that manages all loading indicator types in DevExpress WinForms. It provides four distinct indicator categories suited to different scenarios: a **Splash Screen** shown at app startup, a **Wait Form** that blocks the whole window during operations, an **Overlay Form** that blocks a specific panel or control (the WinForms equivalent of the WPF `LoadingDecorator`), and a **ProgressPanel** control for inline non-blocking feedback. |
| 4 | |
| 5 | All types run in a separate thread (except `ProgressPanel`, which is a plain control) so they stay animated while your main thread performs work. |
| 6 | |
| 7 | ## When to Use This Skill |
| 8 | |
| 9 | - Choosing between the four indicator types for a given scenario. |
| 10 | - Showing a splash screen before the main form loads (`ShowFluentSplashScreen` / `ShowForm`). |
| 11 | - Showing a Wait Form during a long operation and updating its caption/description dynamically. |
| 12 | - Overlaying a specific control or form with a semi-transparent spinner (Overlay Form / Loading Decorator pattern). |
| 13 | - Dropping a `ProgressPanel` onto a form for inline progress feedback. |
| 14 | - Implementing try/finally patterns to guarantee overlays are always closed. |
| 15 | - Customizing the Overlay Form with a custom painter (`OverlayWindowPainterBase`). |
| 16 | |
| 17 | ## Prerequisites & Installation |
| 18 | |
| 19 | ### NuGet Package |
| 20 | |
| 21 | | Package | Required For | |
| 22 | |---|---| |
| 23 | | `DevExpress.Win.Navigation` | `SplashScreenManager`, Overlay Form, Wait Form, ProgressPanel — all loading indicator types. | |
| 24 | | `DevExpress.Win` *(umbrella, optional)* | Covers all WinForms controls including loading indicators. | |
| 25 | |
| 26 | ### Assembly and Namespaces |
| 27 | |
| 28 | ```csharp |
| 29 | using DevExpress.XtraSplashScreen; // SplashScreenManager, IOverlaySplashScreenHandle |
| 30 | using DevExpress.XtraWaitForm; // WaitForm base class, ProgressPanel |
| 31 | ``` |
| 32 | |
| 33 | Assembly: `DevExpress.XtraEditors.v26.1.dll` |
| 34 | |
| 35 | ### Host Form |
| 36 | |
| 37 | Always use `XtraForm` or `RibbonForm` — never a plain `Form`. This ensures skin propagation works correctly for Wait Forms and Overlay Forms. |
| 38 | |
| 39 | ## Before You Start — Ask the Developer |
| 40 | |
| 41 | If the host agent has a structured question-asking tool available, use it to ask these questions one at a time with clear options — for example, Claude Code's `AskUserQuestion` tool or GitHub Copilot's `askQuestions` tool. If no such tool is available, ask the questions directly in the chat response before generating code. |
| 42 | |
| 43 | 1. **When does the indicator appear** — at app startup, or during a runtime operation triggered by a button/event? |
| 44 | 2. **What should be blocked** — the entire form, one panel/control, or nothing (just visual feedback)? |
| 45 | 3. **Does the user need to see progress text** that updates during the operation (e.g., "Row 42 of 1000")? |
| 46 | 4. **Can the user cancel** the operation? |
| 47 | 5. **Is async/await used**, or is the work done on a background thread? (Both work; async is the recommended pattern.) |
| 48 | |
| 49 | ## Documentation & Navigation Guide |
| 50 | |
| 51 | ### Getting Started (NuGet, Setup, Minimal Code) |
| 52 | Refer to [references/getting-started.md](references/getting-started.md) (.NET 8+) or [references/getting-started-dotnet-fw.md](references/getting-started-dotnet-fw.md) (.NET Framework 4.x) |
| 53 | When you need to: install the NuGet package, know which assembly/namespace to reference, or see the minimum code to show any of the four indicator types. |
| 54 | |
| 55 | ### Indicator Types — Comparison and API Patterns |
| 56 | Refer to [references/indicators-comparison.md](references/indicators-comparison.md) |
| 57 | When you need to: choose between Splash |