mcpField
S
syncfusion-winforms-splash-control

syncfusion-winforms-splash-control

github.com/syncfusionデザイン・UI280 回インストール1 週間前に更新
リポジトリ

syncfusion-winforms-splash-control について

Windows Forms 向け Syncfusion SplashControl の利用を案内するスキルです。画像またはカスタムパネルのスプラッシュ画面を作成し、表示時間、位置、アニメーション、ライフサイクルを設定できます。

主な機能

  1. 01画像とカスタムパネルの画面
  2. 02自動表示と手動表示
  3. 03表示時間と位置の設定
  4. 04アニメーションと透明度の設定
  5. 05ホストフォームとイベント制御

活用シーン

  1. 01起動時のブランド表示
  2. 02初期化進捗の表示
  3. 03更新情報の提示
  4. 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.md
automode-timing.md
events.md
getting-started.md
host-form-settings.md
image-animation.md
splashpanel-integration.md

詳細

Syncfusion WinForms SplashControl の実装

SplashControl コンポーネントを使用すると、Windows Forms アプリケーション向けのプロフェッショナルなスプラッシュ画面を簡単に作成できます。コントロールをフォームにドラッグ&ドロップして画像を設定するだけで、カスタマイズ可能な表示時間、アニメーション、配置を設定したスプラッシュ画面が実行時に自動的に表示されます。

このスキルを使用する場面

次のような場合にこのスキルを使用します。

  • アプリケーションの起動中にスプラッシュ画面を表示する
  • アプリケーションの初期化中にブランド情報、ロゴ、読み込み情報を表示する
  • 時間指定または手動制御のスプラッシュ画面を作成する
  • 視覚効果を備えたアニメーションスプラッシュ画面を実装する
  • コントロールやコンテンツを含むカスタムスプラッシュパネルをデザインする
  • スプラッシュ画面の表示中にホストフォームの表示状態を制御する
  • スプラッシュ画面のライフサイクルイベントを処理する
  • スプラッシュ画面をデスクトップ上の特定の位置に配置する

コンポーネントの概要

SplashControl には、次の 2 つの表示モードがあります。

  1. 画像ベースのスプラッシュ画面: 静止画像またはアニメーション画像を表示します
  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;
}

主なプロパティ

プロパティ型説明
AutoModeboolフォームの読み込み時にスプラッシュを自動的に表示します
SplashImageImageスプラッシュ画面として表示する画像
TimerIntervalint表示時間(ミリ秒、デフォルト:5000)
DesktopAlignmentSplashAlignmentデスクトップ上の位置(中央、システムトレイ、各隅、カスタム)
HostFormFormSplashControl の親フォーム
HideHostFormboolスプラッシュ表示中に親フォームを非表示にします
HostFormWindowStateFormWindowStateホストフォームの状態を制御します(通常、最小化、最大化)
ShowAnimationbool左から右へのアニメーション効果を有効にします
CustomSplashPanelSplashPanel画像の代わりに表示するカスタムパネル
UseCustomSplashPanelboolSplashImage の代わりに CustomSplashPanel を使用します
AutoModeDisableOwnerboolAutoMode でスプラッシュをモーダル表示します
ShowAsTopMostboolスプラッシュを最前面のウィンドウとして表示します
TransparentColorColorスプラッシュ画像で透明にする色
IsShowingboolスプラッシュが現在表示されているかを示します(読み取り専用)

主なメソッド

メソッド説明
ShowSplash(bool disableOwner)スプラッシュ画面を手動で表示します
HideSplash()プログラムからスプラッシュ画面を閉じます
ShowDialogSplash(Form owner)スプラッシュをモーダルダイアログとして表示します
ShowDialogSplash(Point location, Form owner)指定した位置にスプラッシュをモーダル表示します

主なイベント

イベント説明
BeforeSplashスプラッシュ表示前に発生します(キャンセル可能)
SplashDisplayedスプラッシュの表示後に発生します
SplashClosingスプラッシュを閉じる前に発生します(キャンセル可能)
SplashClosedスプラッシュを閉じた後に発生します

一般的な使用例

アプリケーション起動時のブランディング

アプリケーションの読み込み中に会社のロゴとバージョン情報を表示し、初期化が完了するまでメインフォームを非表示にします。

長時間かかる初期化処理

データの読み込み、コンポーネントの初期化、サービスへの接続中に、進行状況インジケーター付きのカスタムスプラッシュパネルを表示します。

バージョン更新の通知

更新後にアプリケーションを起動した際、「新機能」情報を含むスプラッシュ画面を表示します。

プロフェッショナルなユーザー体験

アプリケーションのブランディングやデザイン言語に合った、アニメーション付きの透明なスプラッシュ画面を作成します。

時間指定の情報表示

ユーザーが操作できるようになる前に、重要なお知らせ、ヒント、またはメッセージを指定した時間だけ表示します。

ヒントとベストプラクティス

  1. スプラッシュの表示時間は適切に設定してください: 2~5秒が理想的です。表示時間が長すぎるとユーザーに不満を与えます
  2. アプリケーションのテーマに合わせてください: スプラッシュ画面のデザインを、アプリケーションのビジュアルアイデンティティに合わせてください
  3. シンプルにするには AutoMode を使用してください: 複雑な制御が必要でない限り、AutoMode でほとんどのシナリオに対応できます
  4. SplashClosed イベントを処理してください: スムーズに移行できるよう、スプラッシュが閉じるときに初期化タスクを実行してください
  5. 動的なコンテンツには SplashPanel を検討してください: プログレスバーや変化するテキストが必要な場合は、カスタムパネルを使用してください
  6. さまざまな配置をテストしてください: 通常は中央揃えが最適ですが、SystemTray を使用すると目立ちにくくなります
  7. HideHostForm は適切に使用してください: ホストフォームを非表示にすると、よりすっきりとした起動時の操作感を実現できます
  8. アニメーションは必要に応じて有効にしてください: アニメーションは見栄えを良くしますが、すべての種類のアプリケーションに適しているとは限りません

アセンブリの依存関係

必須アセンブリ:

  • Syncfusion.Shared.Base.dll
  • Syncfusion.Tools.Windows.dll

NuGet パッケージ:

Install-Package Syncfusion.Tools.Windows

依存関係の詳細については、Syncfusion コントロールの依存関係に関するドキュメントを参照してください。

コメント