syncfusion-winforms-splash-control について
Windows Forms 向け Syncfusion SplashControl の利用を案内するスキルです。画像またはカスタムパネルのスプラッシュ画面を作成し、表示時間、位置、アニメーション、ライフサイクルを設定できます。
主な機能
- 01画像とカスタムパネルの画面
- 02自動表示と手動表示
- 03表示時間と位置の設定
- 04アニメーションと透明度の設定
- 05ホストフォームとイベント制御
活用シーン
- 01起動時のブランド表示
- 02初期化進捗の表示
- 03更新情報の提示
- 04時間指定のお知らせ表示
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-splash-controlインストール後、Claude Code で/syncfusion-winforms-splash-controlを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/alignment-positioning.mdautomode-timing.mdevents.mdgetting-started.mdhost-form-settings.mdimage-animation.mdsplashpanel-integration.md詳細
Syncfusion WinForms SplashControl の実装
SplashControl コンポーネントを使用すると、Windows Forms アプリケーション向けのプロフェッショナルなスプラッシュ画面を簡単に作成できます。コントロールをフォームにドラッグ&ドロップして画像を設定するだけで、カスタマイズ可能な表示時間、アニメーション、配置を設定したスプラッシュ画面が実行時に自動的に表示されます。
このスキルを使用する場面
次のような場合にこのスキルを使用します。
- アプリケーションの起動中にスプラッシュ画面を表示する
- アプリケーションの初期化中にブランド情報、ロゴ、読み込み情報を表示する
- 時間指定または手動制御のスプラッシュ画面を作成する
- 視覚効果を備えたアニメーションスプラッシュ画面を実装する
- コントロールやコンテンツを含むカスタムスプラッシュパネルをデザインする
- スプラッシュ画面の表示中にホストフォームの表示状態を制御する
- スプラッシュ画面のライフサイクルイベントを処理する
- スプラッシュ画面をデスクトップ上の特定の位置に配置する
コンポーネントの概要
SplashControl には、次の 2 つの表示モードがあります。
- 画像ベースのスプラッシュ画面: 静止画像またはアニメーション画像を表示します
- カスタム SplashPanel: 任意のコントロールを使用して、完全にカスタマイズ可能なパネルをデザインします
主な機能:
- 自動または手動の表示制御
- タイマー間隔を使用した表示時間の設定
- 組み込みのアニメーション効果(左から右への表示)
- 柔軟なデスクトップ上の配置(中央、隅、システムトレイ、カスタム)
- ホストフォームの表示状態の管理
- モーダルまたは非モーダルの表示モード
- 透過のサポート
- ライフサイクル全体に対応するイベント
ドキュメントとナビゲーションガイド
はじめに
📄 参照先: references/getting-started.md
初期設定は、こちらから始めてください。
- アセンブリ参照と NuGet パッケージ
- デザイナーまたはコードからの SplashControl の追加
- 基本的なプロパティの設定
- AutoMode と手動呼び出しの比較
- 最初のスプラッシュ画面の実行
表示とタイミングの設定
📄 参照先: references/automode-timing.md
スプラッシュ画面の表示タイミングと表示方法を設定します。
- フォームの読み込み時に自動表示する AutoMode
- モーダルスプラッシュ画面用の AutoModeDisableOwner
- 手動で表示を制御する ShowSplash() メソッド
- プログラムから閉じる HideSplash()
- モーダルダイアログを表示する ShowDialogSplash()
- 表示時間を制御する TimerInterval
- 表示状態を確認する IsShowing プロパティ
画像とアニメーションの設定
📄 参照先: references/image-animation.md
視覚的な表示をカスタマイズします。
- SplashImage プロパティの設定
- ShowAnimation によるアニメーションの有効化
- 透過色の設定
- ウィンドウの重なり順を制御する ShowAsTopMost
- アニメーションの動作と効果
配置と位置
📄 参照先: references/alignment-positioning.md
デスクトップ上でのスプラッシュ画面の位置を制御します。
- DesktopAlignment のオプション(中央、システムトレイ、四隅)
- カスタム位置指定の方法
- 各配置モードの視覚的な例
ホストフォームの管理
📄 参照先: references/host-form-settings.md
スプラッシュ画面の表示中に親フォームを管理します。
- HostForm プロパティの設定
- メインフォームを非表示にする HideHostForm
- フォームの状態(Normal、Minimized、Maximized)を制御する HostFormWindowState
- スプラッシュ画面とホストフォームの連携
カスタム SplashPanel の統合
📄 参照先: references/splashpanel-integration.md
完全にカスタマイズされたスプラッシュパネルを作成します。
- 静止画像の代わりに SplashPanel を使用する方法
- CustomSplashPanel プロパティ
- カスタムパネルを有効にする UseCustomSplashPanel
- コントロール(ラベル、プログレスバーなど)を含むパネルのデザイン
- SplashControlPanel プロパティ
- ShowInTaskbar と FormIcon の設定
- コード例を含む統合ワークフローの全体
イベント処理
📄 参照: references/events.md
スプラッシュ画面のライフサイクルイベントを処理します。
- BeforeSplash イベント(キャンセル対応)
- SplashDisplayed イベント
- SplashClosing イベント
- SplashClosed イベント
- イベント通知メソッド
- ログ記録とデバッグのパターン
クイックスタート
画像を使用した基本的なスプラッシュ画面
using Syncfusion.Windows.Forms.Tools;
public partial class Form1 : Form
{
private SplashControl splashControl1;
public Form1()
{
InitializeComponent();
// Initialize SplashControl
this.splashControl1 = new SplashControl();
// Set the splash image
this.splashControl1.SplashImage = Image.FromFile("splash.png");
// Configure basic properties
this.splashControl1.HostForm = this;
this.splashControl1.TimerInterval = 3000; // Display for 3 seconds
this.splashControl1.AutoMode = true; // Auto-display on form load
this.splashControl1.DesktopAlignment = SplashAlignment.Center;
// Optional: Enable animation
this.splashControl1.ShowAnimation = true;
}
}
手動での表示制御
// Display splash screen manually
private void ShowSplashButton_Click(object sender, EventArgs e)
{
// Show splash and disable owner form
splashControl1.ShowSplash(true);
}
// Hide splash screen programmatically
private void HideSplashButton_Click(object sender, EventArgs e)
{
splashControl1.HideSplash();
}
// Show as modal dialog
private void ShowModalSplash_Click(object sender, EventArgs e)
{
splashControl1.ShowDialogSplash(this);
}
一般的なパターン
非表示のホストフォームを使用した自動スプラッシュ
初期化中にメインフォームを非表示にして、スプラッシュ画面を表示します。
private void InitializeSplash()
{
splashControl1.HostForm = this;
splashControl1.SplashImage = Properties.Resources.CompanyLogo;
splashControl1.AutoMode = true;
splashControl1.HideHostForm = true;
splashControl1.TimerInterval = 4000;
splashControl1.DesktopAlignment = SplashAlignment.Center;
// Handle splash closed event to perform initialization
splashControl1.SplashClosed += (s, e) =>
{
// Perform app initialization after splash closes
LoadApplicationData();
};
}
進行状況を表示するカスタム SplashPanel
コントロールを含むカスタムのスプラッシュパネルを作成します。
private void SetupCustomSplashPanel()
{
// Create and design SplashPanel
SplashPanel splashPanel = new SplashPanel();
splashPanel.BackgroundColor = new BrushInfo(GradientStyle.Vertical,
Color.White, Color.LightBlue);
splashPanel.Size = new Size(400, 200);
// Add label
Label statusLabel = new Label
{
Text = "Loading Application...",
AutoSize = true,
Location = new Point(50, 80),
Font = new Font("Segoe UI", 14, FontStyle.Bold)
};
splashPanel.Controls.Add(statusLabel);
// Configure SplashControl to use custom panel
splashControl1.CustomSplashPanel = splashPanel;
splashControl1.UseCustomSplashPanel = true;
splashControl1.HostForm = this;
splashControl1.TimerInterval = 5000;
}
イベント駆動型のスプラッシュ表示
ログ記録と制御のためにイベントを処理します。
private void ConfigureSplashEvents()
{
splashControl1.BeforeSplash += (s, e) =>
{
// Log before display
Debug.WriteLine("Splash screen about to display");
// Cancel if needed
// e.Cancel = true;
};
splashControl1.SplashDisplayed += (s, e) =>
{
Debug.WriteLine("Splash screen is now visible");
StartBackgroundInitialization();
};
splashControl1.SplashClosing += (s, e) =>
{
Debug.WriteLine("Splash screen is closing");
};
splashControl1.SplashClosed += (s, e) =>
{
Debug.WriteLine("Splash screen closed");
ShowMainForm();
};
}
透明なスプラッシュ画面
透明な領域を含むスプラッシュ画面を作成します。
private void ConfigureTransparentSplash()
{
splashControl1.SplashImage = Properties.Resources.LogoWithTransparency;
splashControl1.TransparentColor = Color.White; // Make white pixels transparent
splashControl1.ShowAnimation = true;
splashControl1.ShowAsTopMost = true;
splashControl1.DesktopAlignment = SplashAlignment.Center;
splashControl1.TimerInterval = 3000;
}
主なプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
| AutoMode | bool | フォームの読み込み時にスプラッシュを自動的に表示します |
| SplashImage | Image | スプラッシュ画面として表示する画像 |
| TimerInterval | int | 表示時間(ミリ秒、デフォルト:5000) |
| DesktopAlignment | SplashAlignment | デスクトップ上の位置(中央、システムトレイ、各隅、カスタム) |
| HostForm | Form | SplashControl の親フォーム |
| HideHostForm | bool | スプラッシュ表示中に親フォームを非表示にします |
| HostFormWindowState | FormWindowState | ホストフォームの状態を制御します(通常、最小化、最大化) |
| ShowAnimation | bool | 左から右へのアニメーション効果を有効にします |
| CustomSplashPanel | SplashPanel | 画像の代わりに表示するカスタムパネル |
| UseCustomSplashPanel | bool | SplashImage の代わりに CustomSplashPanel を使用します |
| AutoModeDisableOwner | bool | AutoMode でスプラッシュをモーダル表示します |
| ShowAsTopMost | bool | スプラッシュを最前面のウィンドウとして表示します |
| TransparentColor | Color | スプラッシュ画像で透明にする色 |
| IsShowing | bool | スプラッシュが現在表示されているかを示します(読み取り専用) |
主なメソッド
| メソッド | 説明 |
|---|---|
| ShowSplash(bool disableOwner) | スプラッシュ画面を手動で表示します |
| HideSplash() | プログラムからスプラッシュ画面を閉じます |
| ShowDialogSplash(Form owner) | スプラッシュをモーダルダイアログとして表示します |
| ShowDialogSplash(Point location, Form owner) | 指定した位置にスプラッシュをモーダル表示します |
主なイベント
| イベント | 説明 |
|---|---|
| BeforeSplash | スプラッシュ表示前に発生します(キャンセル可能) |
| SplashDisplayed | スプラッシュの表示後に発生します |
| SplashClosing | スプラッシュを閉じる前に発生します(キャンセル可能) |
| SplashClosed | スプラッシュを閉じた後に発生します |
一般的な使用例
アプリケーション起動時のブランディング
アプリケーションの読み込み中に会社のロゴとバージョン情報を表示し、初期化が完了するまでメインフォームを非表示にします。
長時間かかる初期化処理
データの読み込み、コンポーネントの初期化、サービスへの接続中に、進行状況インジケーター付きのカスタムスプラッシュパネルを表示します。
バージョン更新の通知
更新後にアプリケーションを起動した際、「新機能」情報を含むスプラッシュ画面を表示します。
プロフェッショナルなユーザー体験
アプリケーションのブランディングやデザイン言語に合った、アニメーション付きの透明なスプラッシュ画面を作成します。
時間指定の情報表示
ユーザーが操作できるようになる前に、重要なお知らせ、ヒント、またはメッセージを指定した時間だけ表示します。
ヒントとベストプラクティス
- スプラッシュの表示時間は適切に設定してください: 2~5秒が理想的です。表示時間が長すぎるとユーザーに不満を与えます
- アプリケーションのテーマに合わせてください: スプラッシュ画面のデザインを、アプリケーションのビジュアルアイデンティティに合わせてください
- シンプルにするには AutoMode を使用してください: 複雑な制御が必要でない限り、AutoMode でほとんどのシナリオに対応できます
- SplashClosed イベントを処理してください: スムーズに移行できるよう、スプラッシュが閉じるときに初期化タスクを実行してください
- 動的なコンテンツには SplashPanel を検討してください: プログレスバーや変化するテキストが必要な場合は、カスタムパネルを使用してください
- さまざまな配置をテストしてください: 通常は中央揃えが最適ですが、SystemTray を使用すると目立ちにくくなります
- HideHostForm は適切に使用してください: ホストフォームを非表示にすると、よりすっきりとした起動時の操作感を実現できます
- アニメーションは必要に応じて有効にしてください: アニメーションは見栄えを良くしますが、すべての種類のアプリケーションに適しているとは限りません
アセンブリの依存関係
必須アセンブリ:
Syncfusion.Shared.Base.dllSyncfusion.Tools.Windows.dll
NuGet パッケージ:
Install-Package Syncfusion.Tools.Windows
依存関係の詳細については、Syncfusion コントロールの依存関係に関するドキュメントを参照してください。