BeepSplashScreen
Professional application splash screen with branding, progress indication, and smooth animations
📋 Table of Contents
Overview
BeepSplashScreen provides a professional application splash screen that displays during application startup or long-running initialization processes. It features branding elements, progress indication, and smooth fade-in/fade-out animations to create a polished user experience.
Built on the BeepControl foundation, BeepSplashScreen features customizable layouts, logo integration, progress bars, status messages, theme support, and automatic positioning. Perfect for application launches, plugin loading, data initialization, and any process requiring user feedback during startup.
Key Features
🎨 Brand Integration
Logo display with customizable positioning and sizing
📊 Progress Tracking
Built-in progress bar with customizable styles and messaging
✨ Smooth Animations
Fade-in/fade-out transitions for professional appearance
📱 Responsive Layout
Adaptive sizing and automatic screen centering
🎭 Theme Support
Complete theme integration with brand color adaptation
⏱️ Auto Management
Automatic timing and close functionality
Visual Preview
Standard Splash Screen
Beep Application
Professional Business Solutions
Standard splash screen with logo, branding, and progress bar
Basic Usage
Simple Splash Screen
// Create a basic splash screen
var splash = new BeepSplashScreen();
splash.Logo = Properties.Resources.AppLogo;
splash.Title = "My Application";
splash.Subtitle = "Loading, please wait...";
splash.ShowProgressBar = true;
// Show splash screen
splash.Show();
// Simulate loading process
for (int i = 0; i <= 100; i += 10)
{
splash.ProgressValue = i;
splash.StatusMessage = $"Loading... {i}%";
Thread.Sleep(200);
Application.DoEvents();
}
// Close splash screen
splash.Close();
Application Startup with Splash
public partial class MainForm : Form
{
private BeepSplashScreen splashScreen;
public MainForm()
{
ShowSplashScreen();
InitializeApplication();
HideSplashScreen();
}
private void ShowSplashScreen()
{
splashScreen = new BeepSplashScreen
{
Title = "Business Suite Pro",
Subtitle = "Enterprise Management Solution",
Logo = Properties.Resources.CompanyLogo,
Theme = "Corporate",
ShowProgressBar = true,
FadeInDuration = 500
};
splashScreen.Show();
Application.DoEvents();
}
private void InitializeApplication()
{
// Step 1: Load configuration
splashScreen.StatusMessage = "Loading configuration...";
splashScreen.ProgressValue = 20;
LoadConfiguration();
// Step 2: Initialize database
splashScreen.StatusMessage = "Connecting to database...";
splashScreen.ProgressValue = 60;
InitializeDatabase();
// Step 3: Finalize
splashScreen.StatusMessage = "Finalizing...";
splashScreen.ProgressValue = 100;
Thread.Sleep(500);
}
private void HideSplashScreen()
{
splashScreen?.FadeOut();
}
}
Properties
Core Properties
| Property | Type | Default | Description |
|---|---|---|---|
Title |
string | "" | Main application title text |
Subtitle |
string | "" | Subtitle or tagline text |
Logo |
Image | null | Application logo image |
StatusMessage |
string | "" | Current loading status message |
Progress Properties
| Property | Type | Default | Description |
|---|---|---|---|
ShowProgressBar |
bool | true | Show/hide the progress bar |
ProgressValue |
int | 0 | Progress percentage (0-100) |
AutoClose |
bool | false | Automatically close after completion |
Examples
Async Application Loading
public async Task LoadApplicationAsync()
{
var splash = new BeepSplashScreen
{
Title = "Enterprise Dashboard",
Subtitle = "Advanced Analytics Platform",
Logo = Properties.Resources.Logo,
Theme = "Professional"
};
splash.Show();
try
{
await LoadConfigurationAsync(splash);
await InitializeDatabaseAsync(splash);
await LoadPluginsAsync(splash);
splash.FadeOut();
return true;
}
catch (Exception ex)
{
splash.Close();
MessageBox.Show($"Failed to load: {ex.Message}");
return false;
}
}
private async Task LoadConfigurationAsync(BeepSplashScreen splash)
{
splash.StatusMessage = "Loading configuration...";
splash.ProgressValue = 33;
await Task.Delay(1000); // Simulate work
}
private async Task InitializeDatabaseAsync(BeepSplashScreen splash)
{
splash.StatusMessage = "Connecting to database...";
splash.ProgressValue = 66;
await Task.Delay(1500); // Simulate work
}
private async Task LoadPluginsAsync(BeepSplashScreen splash)
{
splash.StatusMessage = "Loading plugins...";
splash.ProgressValue = 100;
await Task.Delay(800); // Simulate work
}
Theming
BeepSplashScreen provides comprehensive theming support with brand-aware styling:
Theme Application
var splash = new BeepSplashScreen
{
Theme = "CorporateTheme",
UseThemeColors = true
};
// Theme automatically applies:
// - BackgroundColor: Primary theme background
// - ForeColor: Theme text colors
// - ProgressBarColor: Theme accent colors
// - BorderColors: Theme border styling
Best Practices
🎯 User Experience
- Meaningful branding: Use logo and colors that represent your application
- Progress feedback: Show actual loading progress, not fake progress
- Clear messaging: Provide specific status messages for each loading step
- Appropriate timing: Don't show splash screen for very fast loading
🔧 Implementation
- Thread safety: Update splash screen from UI thread only
- Exception handling: Handle loading failures gracefully
- Memory management: Properly dispose of splash screen resources
- Async loading: Use async/await for loading operations
Design your splash screen to reinforce your brand identity while providing useful feedback about the loading process.
Use actual loading progress rather than fake progress bars - users appreciate honest feedback about application startup time.