syncfusion-winforms-status-bar について
Windows Forms アプリに Syncfusion StatusBarAdv を実装するためのガイドです。状態パネルのレイアウトやスタイルを設定したい開発者向けに、テーマ、背景、境界線、自動サイズ調整、子コントロールを扱います。
主な機能
- 01複数のステータス情報パネル
- 02グラデーション、パターン、単色背景
- 03Office 2016 と Metro のスタイル
- 04パネルの配置と間隔設定
- 05サイズと高さの自動調整
- 06WinForms 子コントロールの埋め込み
活用シーン
- 01アプリの状態や処理の進捗表示
- 02パネルへの日時表示
- 03カルチャやローカライズ情報の表示
- 04時間のかかる処理への進捗バー追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-status-barインストール後、Claude Code で/syncfusion-winforms-status-barを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/appearance-styling.mdborders-and-themes.mdevents-and-behavior.mdgetting-started.mdpanels-and-layout.md詳細
ステータスバーの実装(StatusBarAdv)
このスキルでは、Windows Forms アプリケーションに Syncfusion StatusBarAdv コントロールを実装する方法を説明します。StatusBarAdv は、高度な背景や外観を備えたパネルを表示し、Office2016 テーマに対応するステータスバーです。
このスキルを使用する場面
次のような場合に、このスキルを使用してください。
- フォームの下部にアプリケーションのステータス情報を表示する
- グラデーション背景やスタイル付きパネルを備えた、高度なステータスバーを実装する
- ステータスパネルに日付/時刻、カルチャ情報、キーの状態を表示する
- Office2016 または Metro テーマを使用して、洗練された外観のステータスバーを作成する
- ステータスバーにカスタムコントロールやパネルを追加する
- ステータス表示でのパネルの配置や間隔を設定する
- ステータスバーに高度な境界線や背景のスタイルを適用する
- ステータスバーのプロパティ変更イベントを処理する
コンポーネントの概要
StatusBarAdv は、標準の Windows Forms StatusBar を拡張した高度なステータスバーコントロールで、次の機能を備えています。
- StatusBarAdvPanel コレクション:カスタムコンテンツやスタイルを指定して複数のパネルを追加できます
- 高度な背景:BrushInfo を使用して、グラデーション、パターン、単色を指定できます
- Office2016 テーマ:Colorful、White、Black、DarkGray のテーマに対応しています
- 境界線のカスタマイズ:カスタムカラーを指定した 2D および 3D の境界線スタイル
- パネルの配置:中央、近端、遠端、およびカスタムの配置オプション
- 自動サイズ調整:パネルの高さを自動的に調整します
- Metro スタイル:モダンなフラットデザインのオプション
- サイズ変更グリップ:フォームのサイズ変更インジケーター
- 子コントロール:任意の WinForms コントロールをステータスバーに追加できます
アセンブリ: Syncfusion.Tools.Windows
依存関係: Syncfusion.Shared.Base、Syncfusion.Tools.Windows
名前空間: Syncfusion.Windows.Forms.Tools
ドキュメントとナビゲーションガイド
はじめに
📄 参照: references/getting-started.md
参照するタイミング: StatusBarAdv を初めて実装する場合、アセンブリをセットアップする場合、または基本的なステータスバーを作成する場合。
- アセンブリの要件とインストール
- NuGet パッケージのインストール
- ツールボックスを使用したデザイナーでのセットアップ
- プログラムによる作成と初期化
- StatusBarAdvPanel コントロールの追加
- 基本的な設定とドッキング
- よくあるセットアップの問題のトラブルシューティング
パネルとレイアウト
📄 参照: references/panels-and-layout.md
参照するタイミング: 複数のパネルを管理する場合、間隔を設定する場合、パネルの配置をカスタマイズする場合、またはコントロールを配置する場合。
- StatusBarAdvPanel コレクションの管理
- パネル間隔の設定
- パネルサイズを指定する CustomLayoutBounds
- 配置オプション(Center、Near、Far、ChildConstraints)
- 水平方向の配置に使用する SetHAlign メソッド
- パネルの配置とサイズ設定
- StatusBarAdv への子コントロールの追加
- レイアウトのカスタマイズパターン
外観とスタイル
📄 参照: references/appearance-styling.md
参照するタイミング: ステータスバーの外観をカスタマイズする場合、グラデーションを適用する場合、色を設定する場合、またはサイズ変更グリップを追加する場合。
- BrushInfo を使用する BackgroundColor プロパティ
- グラデーション背景(6 種類のグラデーションスタイル)
- パターンスタイルと単色
- GradientColors 配列の設定
- MetroColor と UseMetroColorAsBorder
- ForeColor のカスタマイズ
- SizingGrip の表示
- スタイル設定の完全な例
境界線とテーマ
📄 参照: references/borders-and-themes.md
参照するタイミング: 境界線を適用する場合、Office2016 テーマを使用する場合、Metro スタイルを有効にする場合、またはテーマに合わせた背景を設定する場合。
- BorderStyle プロパティ(None、FixedSingle、Fixed3D)
- Border3DStyle のオプション(10 種類)
- 2D 境界線の設定(BorderColor、BorderSingle、BorderSides)
- Office2016 テーマ(Colorful、White、Black、DarkGray)
- Metro スタイルの適用
- ThemesEnabled と IgnoreThemeBackground
- テーマ設定の完全な例
イベントと動作
📄 参照: references/events-and-behavior.md
読むタイミング: 自動サイズ調整の実装、プロパティ変更イベントの処理、または境界線やグラデーションの変更への対応を行う場合です。
- AutoSize と AutoSizeMode の設定
- パネルの高さを調整する AutoHeightControls
- GetPreferredSize メソッドと SetPreferredSize メソッド
- 9 つのプロパティ変更イベント
- BorderSidesChanged イベント、BorderColorChanged イベント
- GradientBackgroundChanged イベント
- ThemeChanged イベント
- イベント処理のパターン
クイックスタートの例
パネルを使った基本的な StatusBarAdv
C#:
using Syncfusion.Windows.Forms.Tools;
using System.Drawing;
using System.Windows.Forms;
public partial class MainForm : Form
{
private StatusBarAdv statusBarAdv1;
private StatusBarAdvPanel culturePanel;
private StatusBarAdvPanel datePanel;
private StatusBarAdvPanel timePanel;
public MainForm()
{
InitializeComponent();
SetupStatusBar();
}
private void SetupStatusBar()
{
// Create StatusBarAdv
statusBarAdv1 = new StatusBarAdv
{
Dock = DockStyle.Bottom,
BackColor = Color.LightSteelBlue,
BorderColor = Color.DarkSlateGray,
BorderStyle = BorderStyle.FixedSingle,
SizingGrip = true
};
// Create panels
culturePanel = new StatusBarAdvPanel
{
PanelType = StatusBarAdvPanelType.CurrentCulture,
Size = new Size(120, 27)
};
datePanel = new StatusBarAdvPanel
{
PanelType = StatusBarAdvPanelType.ShortDate,
Size = new Size(100, 27)
};
timePanel = new StatusBarAdvPanel
{
PanelType = StatusBarAdvPanelType.ShortTime,
Size = new Size(100, 27)
};
// Add panels to StatusBarAdv
statusBarAdv1.Controls.Add(culturePanel);
statusBarAdv1.Controls.Add(datePanel);
statusBarAdv1.Controls.Add(timePanel);
// Add to form
this.Controls.Add(statusBarAdv1);
}
}
VB.NET:
Imports Syncfusion.Windows.Forms.Tools
Imports System.Drawing
Imports System.Windows.Forms
Public Partial Class MainForm
Inherits Form
Private statusBarAdv1 As StatusBarAdv
Private culturePanel As StatusBarAdvPanel
Private datePanel As StatusBarAdvPanel
Private timePanel As StatusBarAdvPanel
Public Sub New()
InitializeComponent()
SetupStatusBar()
End Sub
Private Sub SetupStatusBar()
' Create StatusBarAdv
statusBarAdv1 = New StatusBarAdv With {
.Dock = DockStyle.Bottom,
.BackColor = Color.LightSteelBlue,
.BorderColor = Color.DarkSlateGray,
.BorderStyle = BorderStyle.FixedSingle,
.SizingGrip = True
}
' Create panels
culturePanel = New StatusBarAdvPanel With {
.PanelType = StatusBarAdvPanelType.CurrentCulture,
.Size = New Size(120, 27)
}
datePanel = New StatusBarAdvPanel With {
.PanelType = StatusBarAdvPanelType.ShortDate,
.Size = New Size(100, 27)
}
timePanel = New StatusBarAdvPanel With {
.PanelType = StatusBarAdvPanelType.ShortTime,
.Size = New Size(100, 27)
}
' Add panels to StatusBarAdv
statusBarAdv1.Controls.Add(culturePanel)
statusBarAdv1.Controls.Add(datePanel)
statusBarAdv1.Controls.Add(timePanel)
' Add to form
Me.Controls.Add(statusBarAdv1)
End Sub
End Class
一般的なパターン
1. Metro テーマのグラデーション背景
Metro スタイルを適用したモダンなグラデーション背景を設定します。
// Set gradient background (will be overridden if Metro style is applied)
statusBarAdv1.BackgroundColor = new BrushInfo(
GradientStyle.Horizontal,
Color.AliceBlue,
Color.LightSteelBlue
);
// Apply Metro style (this overrides BackgroundColor)
statusBarAdv1.Style = StatusbarStyle.Metro;
// Set metro accent color
statusBarAdv1.MetroColor = ColorTranslator.FromHtml("#16a5dc");
statusBarAdv1.UseMetroColorAsBorder = true;
注:
Style = StatusbarStyle.Metroを設定すると、カスタムのBackgroundColorグラデーションは無視されます。Metro スタイルを適用するには、代わりにMetroColorとUseMetroColorAsBorderを使用してください。
2. カスタムパネルの配置
ChildConstraints を使用して、カスタム位置にパネルを配置します。
// Enable custom alignment
statusBarAdv1.Alignment = FlowAlignment.ChildConstraints;
// Left-align first panel
statusBarAdv1.SetHAlign(panel1, HorzFlowAlign.Left);
// Right-align second panel
statusBarAdv1.SetHAlign(panel2, HorzFlowAlign.Right);
// Justify third panel to fill space
statusBarAdv1.SetHAlign(panel3, HorzFlowAlign.Justify);
3. 自動サイズ調整を使った Office2016 テーマ
Office2016 テーマを適用し、高さを自動調整します。
// Apply Office2016 Colorful theme
statusBarAdv1.Style = StatusbarStyle.Office2016Colorful;
// Enable auto-sizing
statusBarAdv1.AutoSize = true;
statusBarAdv1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
// Auto-adjust panel heights
statusBarAdv1.AutoHeightControls = true;
主なプロパティ
StatusBarAdv のプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
BackgroundColor | BrushInfo | 背景のグラデーション、パターン、または単色の設定 |
BorderStyle | BorderStyle | 境界線の種類:None、FixedSingle、または Fixed3D |
Border3DStyle | Border3DStyle | 3D 境界線のスタイル(10 種類:Raised、Sunken など) |
BorderColor | Color | 2D 境界線の色(BorderStyle.FixedSingle が必要) |
BorderSingle | ButtonBorderStyle | 2D 境界線のスタイル:Solid、Dashed、Dotted など |
BorderSides | Border3DSide | 表示する境界線の辺:Left、Top、Right、Bottom、All |
Style | StatusbarStyle | テーマ:Default、Metro、Office2016Colorful、Office2016White、Office2016Black、Office2016DarkGray |
Panels | Collection | StatusBarAdv 内の StatusBarAdvPanel コントロール |
Alignment | FlowAlignment | パネルの配置:Center、Near、Far、ChildConstraints |
Spacing | Size | パネル間の間隔 |
CustomLayoutBounds | Rectangle | パネルのレイアウトに使用するカスタム矩形 |
SizingGrip | bool | サイズ変更可能なフォームにサイズ変更グリップを表示するかどうか |
AutoSize | bool | 内容に合わせて自動的にサイズを変更するかどうか |
AutoSizeMode | AutoSizeMode | サイズ変更モード:GrowAndShrink または GrowOnly |
AutoHeightControls | bool | StatusBarAdv の高さに合わせてパネルの高さを自動調整するかどうか |
MetroColor | Color | Metro テーマのアクセントカラー |
UseMetroColorAsBorder | bool | MetroColor を境界線の色として使用するかどうか |
ThemesEnabled | bool | テーマに応じた背景描画を有効にするかどうか |
IgnoreThemeBackground | bool | テーマの背景を無視し、代わりに BackColor を使用するかどうか |
StatusBarAdvPanel のプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
PanelType | StatusBarAdvPanelType | パネルのコンテンツの種類です。値には、None(コンテンツなし)、Text(カスタムテキスト)、CurrentCulture(カルチャ情報)、ShortDate(日付)、ShortTime(時刻)、Owner(オーナー描画のコンテンツ)があります。 |
Size | Size | パネルの寸法 |
Text | string | パネルに表示するカスタムテキスト |
StatusBarAdv の拡張メソッド
| メソッド | 説明 |
|---|---|
SetHAlign(StatusBarAdvPanel, HorzFlowAlign) | 特定のパネルの水平方向の配置(Left、Center、Right、Justify)を設定します。 |
GetHAlign(StatusBarAdvPanel) | 特定のパネルの現在の水平方向の配置を取得します。 |
一般的なユースケース
- アプリケーションの状態表示: 準備状態、接続状態、操作の進行状況を表示します
- 日付/時刻情報: 組み込みのパネルタイプを使用して、現在の日付と時刻を表示します
- カルチャとローカライズ: CurrentCulture パネルで現在のカルチャ情報を表示します
- 進行状況インジケーター: 時間のかかる操作に備えて、ステータスバーに ProgressBar コントロールを追加します
- ドキュメント情報: ファイル名、行/列位置、単語数を表示します
- ネットワーク状態: カスタムパネルで接続状態やサーバーの状態を表示します
- ユーザーセッション情報: ログイン中のユーザー名やセッションの詳細を表示します
- テーマを適用したアプリケーション: Office2016 または Metro テーマを適用して、UI に一貫性を持たせます
追加リソース
- Syncfusion ドキュメント: StatusBarAdv 公式ドキュメント
- パネルリファレンス: パネル固有のプロパティについては、StatusBarAdvPanel のドキュメントを参照してください
- テーマのサポート: StatusBarAdv は、アプリケーション全体のテーマ設定に VisualStyleManager をサポートしています
次のステップ
StatusBarAdv の基本機能を実装した後は、次の手順に進んでください。
- 複数のパネルを追加する → こちらを参照してください: references/panels-and-layout.md
- 外観をカスタマイズする → こちらを参照してください: references/appearance-styling.md
- テーマを適用する → こちらを参照してください: references/borders-and-themes.md