
syncfusion-wpf-busy-indicator
Comprehensive guide for implementing the Syncfusion WPF Busy Indicator (SfBusyIndicator) control in Windows Presentation Foundation applications. Use this skill when working with loading indicators, progress animations, or visual feedback during async and long-running operations in WPF. Covers IsBusy binding, AnimationType configuration, header customization, MVVM integration, and sizing with ViewboxHeight/ViewboxWidth.
- Installs
- 153
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-busy-indicator- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads syncfusion-wpf-busy-indicator automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Implementing Syncfusion WPF Busy Indicator
Comprehensive guide for implementing the Syncfusion® WPF Busy Indicator control. The SfBusyIndicator provides visual feedback during long-running operations with over 37 built-in animations, customizable headers, and full MVVM support.
When to Use This Skill
Use this skill when user need to:
- Show loading indicators during data fetching or processing operations
- Display progress animations while waiting for async operations to complete
- Provide visual feedback during long-running background tasks
- Implement wait screens for file operations, API calls, or database queries
- Indicate busy status in WPF applications with animated indicators
- Customize loading UI with headers, templates, and animation styles
- Integrate with MVVM patterns for command execution feedback
- Configure animation types from 37+ built-in animation options
The SfBusyIndicator is essential for improving user experience by providing clear visual feedback during operations that require users to wait.
Component Overview
The SfBusyIndicator control provides a flexible and customizable way to display loading indicators in WPF applications:
Key Features
- 37+ Built-in Animations - Multiple animation styles including Flight, Spin, Ball, Box, and more
- Animation Speed Control - Adjustable animation speed for all animation types (except Fluent)
- Custom Headers - Display informative text below the animation
- Header Templates - Full template customization for header content
- Flexible Sizing - Control animation size with ViewboxHeight and ViewboxWidth
- IsBusy Property - Simple boolean toggle to show/hide the indicator
- Theme Support - Built-in theme integration with Syncfusion theme system
- MVVM Ready - Full data binding support for properties and commands
- Extensible Methods - Override methods for custom control behaviors
Assembly and Namespace
- Assembly:
Syncfusion.SfBusyIndicator.WPF - Namespace:
Syncfusion.Windows.Controls.Notification - NuGet Package:
Syncfusion.SfBusyIndicator.WPF
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Installation via NuGet Package Manager
- Assembly references and namespace imports
- License configuration and registration
- Basic implementation in XAML and code-behind
- Theme setup and configuration
- Minimal working example
- GitHub sample repository links
Animation Configuration
📄 Read: references/animation-types.md
- AnimationType property overview
- Complete list of 37+ built-in animations
- AnimationSpeed property configuration
- Speed adjustment examples (normal, faster, slower)
- Platform-specific notes (Fluent animation behavior)
- Visual animation gallery reference
- XAML, C#, and VB code examples
Display Control
📄 Read: references/isbusy-property.md
- IsBusy property purpose and usage
- Controlling animation execution on/off
- Data binding to async operations
- MVVM pattern integration with commands
- RelayCommand and ICommand examples
- Triggering busy state from view models
- Common display control scenarios
Header Customization
📄 Read: references/header-customization.md
- Header property for simple text
- HeaderTemplate for advanced customization
- DataTemplate examples with styles
- Dynamic content binding
- Multi-line headers and formatting
- Foreground and font customization
- Layout and positioning options
Sizing and Layout
📄 Read: references/sizing.md
- ViewboxHeight property configuration
- ViewboxWidth property configuration
- Responsive sizing strategies
- Container and layout considerations
- Maintaining aspect ratios
- Examples for different screen sizes
- Best practices for sizing
Advanced Usage - Methods
📄 Read: references/methods.md
- Dispose() method for resource cleanup
- Dispose(Boolean) protected overload
- OnApplyTemplate() for template initialization
- OnAnimationTypeChanged() for animation changes
- OnPropertyChanged() for property monitoring
- Custom control extension scenarios
- Template part access patterns
- Advanced customization examples
Quick Start Example
Basic Busy Indicator
<Window xmlns:syncfusion="clr-namespace:Syncfusion.Windows.Controls.Notification;assembly=Syncfusion.SfBusyIndicator.WPF"
x:Class="BusyIndicatorApp.MainWindow">
<Grid Background="CornflowerBlue">
<syncfusion:SfBusyIndicator IsBusy="True"
AnimationType="Flight"
Header="Loading..."
Foreground="White"/>
</Grid>
</Window>
With Data Binding (MVVM)
<Grid>
<syncfusion:SfBusyIndicator IsBusy="{Binding IsLoading}"
AnimationType="DoubleCircle"
Header="{Binding LoadingMessage}"/>
</Grid>
public class MainViewModel : INotifyPropertyChanged
{
private bool _isLoading;
public bool IsLoading
{
get => _isLoading;
set { _isLoading = value; OnPropertyChanged(); }
}
private string _loadingMessage = "Please wait...";
public string LoadingMessage
{
get => _loadingMessage;
set { _loadingMessage = value; OnPropertyChanged(); }
}
public async Task LoadDataAsync()
{
IsLoading = true;
LoadingMessage = "Loading data...";
await Task.Delay(3000); // Simulate operation
IsLoading = false;
}
}
Common Patterns
Pattern 1: Async Operation with Busy Indicator
public class DataViewModel : ViewModelBase
{
private bool _isBusy;
public bool IsBusy
{
get => _isBusy;
set => SetProperty(ref _isBusy, value);
}
public ICommand LoadCommand { get; }
public DataViewModel()
{
LoadCommand = new RelayCommand(async () => await LoadDataAsync());
}
private async Task LoadDataAsync()
{
IsBusy = true;
try
{
var data = await _dataService.GetDataAsync();
// Process data
}
finally
{
IsBusy = false;
}
}
}
Pattern 2: Custom Animation Selection
<StackPanel>
<ComboBox x:Name="AnimationSelector" SelectedIndex="0">
<ComboBoxItem Content="Flight"/>
<ComboBoxItem Content="DoubleCircle"/>
<ComboBoxItem Content="Spin"/>
</ComboBox>
<syncfusion:SfBusyIndicator IsBusy="True"
AnimationType="{Binding ElementName=AnimationSelector,
Path=SelectedItem.Content}"/>
</StackPanel>
Pattern 3: Overlay Busy Indicator
<Grid>
<!-- Main content -->
<ContentControl Content="{Binding MainContent}"/>
<!-- Overlay busy indicator -->
<Grid Background="#80000000"
Visibility="{Binding IsBusy, Converter={StaticResource BoolToVisibilityConverter}}">
<syncfusion:SfBusyIndicator IsBusy="{Binding IsBusy}"
AnimationType="Ball"
Header="Processing..."
Foreground="White"
ViewboxHeight="150"
ViewboxWidth="150"/>
</Grid>
</Grid>
Pattern 4: Conditional Headers
<syncfusion:SfBusyIndicator IsBusy="{Binding IsProcessing}">
<syncfusion:SfBusyIndicator.HeaderTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding CurrentOperation}"
FontSize="14" FontWeight="Bold"/>
<TextBlock Text="{Binding ProgressPercentage, StringFormat='Progress: {0}%'}"
FontSize="11" Margin="0,5,0,0"/>
</StackPanel>
</DataTemplate>
</syncfusion:SfBusyIndicator.HeaderTemplate>
</syncfusion:SfBusyIndicator>
Key Properties
| Property | Type | Description |
|---|---|---|
| IsBusy | bool | Controls whether the animation is displayed |
| AnimationType | AnimationTypes | Sets the animation style (Flight, Spin, etc.) |
| AnimationSpeed | double | Controls animation speed (not for Fluent type) |
| Header | object | Text or content displayed below animation |
| HeaderTemplate | DataTemplate | Custom template for header content |
| ViewboxHeight | double | Height of the animation viewbox |
| ViewboxWidth | double | Width of the animation viewbox |
Key Methods
| Method | Description |
|---|---|
| Dispose() | Releases managed and unmanaged resources |
| Dispose(Boolean) | Protected overload for resource cleanup |
| OnApplyTemplate() | Override to access template parts |
| OnAnimationTypeChanged() | Override to handle animation type changes |
| OnPropertyChanged() | Override to monitor property changes |
Common Use Cases
Data Loading Operations
Display a busy indicator while fetching data from APIs, databases, or file systems. Bind IsBusy to the loading state in your view model.
File Operations
Show loading feedback during file uploads, downloads, or processing operations with informative headers indicating the current operation.
Background Processing
Indicate that background tasks are running (calculations, image processing, batch operations) with appropriate animation types and messages.
Application Initialization
Display a busy indicator during application startup while loading configuration, user settings, or initial data.
Search and Filter Operations
Provide visual feedback while performing complex search or filter operations on large datasets.
Navigation and Page Loading
Show busy indicators when navigating between views or loading page content in navigation-based applications.
Best Practices
- Always use with async operations - Ensure IsBusy is set before starting and cleared after completing operations
- Provide meaningful headers - Use descriptive text to inform users what's happening
- Choose appropriate animations - Select animations that match your application's theme and purpose
- Consider overlay approach - Use semi-transparent overlays to prevent user interaction during busy states
- Handle exceptions properly - Always reset IsBusy in finally blocks to avoid stuck indicators
- Use MVVM pattern - Bind IsBusy to view model properties for better testability and maintainability
- Adjust sizing appropriately - Size the indicator based on the importance and screen space available
- Theme consistently - Use Syncfusion themes for consistent appearance across your application
Performance Tips
- Avoid complex HeaderTemplates that may impact rendering performance
- Use appropriate animation types for your use case (simpler animations for frequent operations)
- Don't nest multiple busy indicators unnecessarily
- Consider caching animation resources when using many indicators
Related Components
- ProgressBar - For determinate progress indication with percentage
- Toast - For brief notification messages
- Message - For user notifications with actions
- Skeleton - For content placeholder animations
Next Steps: Navigate to the reference files above based on your specific implementation needs. Start with getting-started.md for initial setup or jump directly to feature-specific references for advanced scenarios.
FAQ
What does the syncfusion-wpf-busy-indicator skill do?
Comprehensive guide for implementing the Syncfusion WPF Busy Indicator (SfBusyIndicator) control in Windows Presentation Foundation applications. Use this skill when working with loading indicators, progress animations, or visual feedback during async and long-running operations in WPF. Covers IsBusy binding, AnimationType configuration, header customization, MVVM integration, and sizing with ViewboxHeight/ViewboxWidth.
How do I install syncfusion-wpf-busy-indicator?
Run npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-busy-indicator in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-wpf-busy-indicator/ (personal) or .claude/skills/syncfusion-wpf-busy-indicator/ (project).
Which AI agents can use syncfusion-wpf-busy-indicator?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is syncfusion-wpf-busy-indicator safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains syncfusion-wpf-busy-indicator?
It is published by syncfusion in syncfusion/wpf-ui-components-skills. It has 153 recorded installs.
More from syncfusion/wpf-ui-components-skills
syncfusion-wpf-theming
syncfusion/wpf-ui-components-skills
Implement and customize themes for Syncfusion WPF controls using SfSkinManager. Apply built-in themes (Windows 11, Fluent, Material, Office 2019), create custom themes with Theme Studio, and control visual effects like reveal animations and acrylic backgrounds. Use this skill whenever user needs to theme WPF applications, apply Syncfusion themes, customize colors/fonts, or configure theme-based visual effects and accessibility features.
syncfusion-wpf-datagrid
syncfusion/wpf-ui-components-skills
Implements Syncfusion WPF DataGrid (SfDataGrid) component for displaying and manipulating tabular data in Windows Presentation Foundation applications. Use this when working with data grids, table views, or data binding scenarios. Supports sorting, filtering, grouping, editing, Excel/PDF export, drag and drop, master-detail views, summaries, and extensive styling options.
syncfusion-wpf-carousel
syncfusion/wpf-ui-components-skills
Implements the Syncfusion WPF Carousel for displaying items in rotating or custom path interfaces with navigation support. Use when building image carousels, rotating galleries, or custom-path item displays with templates and data binding.
syncfusion-wpf-combobox
syncfusion/wpf-ui-components-skills
Implement Syncfusion WPF ComboBoxAdv with multiselection, editable support, autocomplete, data binding, and token features. Use this when working with dropdown selection, multiselect dropdowns, editable dropdowns, or autocomplete in WPF. Covers tokens, watermarks, delimiters, custom item templates, and dropdown behavior configuration.
syncfusion-wpf-button
syncfusion/wpf-ui-components-skills
Implement Syncfusion WPF ButtonAdv controls for configurable button UIs. Use this when adding, configuring, or customizing a Syncfusion WPF ButtonAdv — including labels, icons, size modes, toggle/checkable behavior, MVVM command binding, multiline text, corner radius, IsDefault/IsCancel modes, icon templates, and themes.
syncfusion-wpf-licensing
syncfusion/wpf-ui-components-skills
Comprehensive guide for implementing, registering, and troubleshooting Syncfusion licensing across all platforms. Covers license key registration, license validation errors, RegisterLicense API, SyncfusionLicenseProvider configuration, trial vs. licensed versions, CI/CD build server setup, and platform-specific licensing requirements. Use this skill when users need help with Syncfusion license registration, licensing validation issues, or license-related troubleshooting.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.