syncfusion-winforms-gradient-panel について
Windows Forms アプリケーションで Syncfusion GradientPanel をスタイル付きコンテナーとして使うためのスキルです。グラデーション、パターン、画像、枠線、スクロール、サイズ設定を扱います。
主な機能
- 01グラデーション、パターン、単色の背景
- 02複数のグラデーション方向
- 032D・3D 枠線のカスタマイズ
- 04背景画像とレイアウト
- 05自動スクロールとサイズ調整
活用シーン
- 01フォーム領域やヘッダーのスタイル設定
- 02サイドバーとコンテンツ領域の区分
- 03関連するコントロールのグループ化
- 04スクロール可能なスタイル付きコンテナーの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-gradient-panelインストール後、Claude Code で/syncfusion-winforms-gradient-panelを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/appearance-customization.mdbackground-styles.mdborder-settings.mdgetting-started.mdscroll-sizing.md詳細
グラデーションパネルの実装
このスキルでは、Windows Forms アプリケーションに Syncfusion GradientPanel コントロールを実装する方法を説明します。GradientPanel は、グラデーション、パターン、単色による高度な背景カスタマイズ機能を備えた、Panel 派生のコンテナーコントロールです。
このスキルを使用する場面
次のような場合に、このスキルを使用します。
- グラデーション背景のコンテナー - グラデーションの色の変化で見栄えの良いパネルを作成する
- スタイル付きコントロールのグループ化 - 関連するコントロールを、スタイル付きのコンテナーパネルにまとめる
- パターン背景 - 市松模様、ドット、ストライプなどのパターン背景を使用する
- 視覚的な区分け - カスタム背景で、明確に区分されたセクションを作成する
- スタイル付きコンテナー - 標準パネルを、視覚的に豊かな代替コントロールに置き換える
- カスタム枠線 - さまざまなスタイルの 2D または 3D 枠線を適用する
- スクロール可能なコンテナー - 大きなコンテンツ領域用の自動スクロールパネルを作成する
- 背景画像 - グラデーション効果と背景画像を組み合わせる
コンポーネントの概要
GradientPanel は、ほかのコントロールを格納するコンテナーとして機能する、Panel 派生のコントロールです。標準の Panel を拡張し、高度な背景描画機能を提供します。
主な機能:
- 複数の背景スタイル:単色、グラデーション、パターン塗りつぶし
- グラデーションの方向:右上がり/左上がりの対角線、水平方向、垂直方向、パスベース
- 枠線のカスタマイズ:複数のスタイルから選べる 2D および 3D 枠線
- 画像背景:レイアウトオプションに対応した背景画像
- 自動スクロール:コンテンツがあふれた場合にスクロールバーを自動表示
- 自動サイズ調整:コンテンツに応じてパネルのサイズを自動調整
コントロールの種類: コンテナーコントロール(Panel を継承)
アセンブリ: Syncfusion.Shared.Base.dll
名前空間: Syncfusion.Windows.Forms.Tools
ドキュメントと参照ガイド
はじめに
📄 参照先: references/getting-started.md
- アセンブリの配置と NuGet のインストール
- デザイナー(ツールボックス)から GradientPanel を追加する
- コードから GradientPanel を追加する
- 基本的なセットアップと初期設定
- 最初のグラデーションパネルの例
参照するタイミング: 新しい実装を始めるとき、インストール方法を確認するとき、初回のセットアップを行うとき
背景スタイルとカスタマイズ
📄 参照先: references/background-styles.md
- 単色背景
- パターン背景(53 種類のパターンスタイル)
- グラデーション背景(7 種類のグラデーション方向)
- BrushInfo の設定
- 色のブレンドと組み合わせ
- BackColor プロパティと BackgroundColor プロパティ
参照するタイミング: グラデーション効果、パターン塗りつぶし、色の変化、カスタム背景スタイルが必要なとき
外観のカスタマイズ
📄 参照先: references/appearance-customization.md
- 前景色と背景色
- フォントとテキストのスタイル
- 背景画像とレイアウトモード
- グラデーションと画像の組み合わせ
- 透明効果とレイヤー効果
参照するタイミング: テキストスタイル、背景画像、レイヤー効果、フォントのカスタマイズが必要なとき
枠線の設定
📄 参照先: references/border-settings.md
- 2D 枠線(FixedSingle)と 3D 枠線(Fixed3D)
- Border3DStyle のオプション(Raised、Etched、Sunken など)
- 2D 枠線用の BorderColor
- 枠線を個別に設定する BorderSides
- 枠線の視覚的な比較
参照するタイミング: カスタム枠線、3D 効果、枠線の色、枠線の辺を個別に設定する必要があるとき
スクロールと自動サイズ調整の設定
📄 参照先: references/scroll-sizing.md
- コンテンツがあふれた場合の AutoScroll
- AutoScrollMargin と AutoScrollMinSize
- AutoSize の動作
- AutoSizeMode(GrowOnly と GrowAndShrink)
- 子コントロールを含むコンテナーの管理
参照するタイミング: コンテンツがパネルのサイズを超えるとき、自動スクロールが必要なとき、パネルのサイズを動的に調整するとき
クイックスタート
コードから基本的なグラデーションパネルを作成する
using Syncfusion.Windows.Forms.Tools;
using Syncfusion.Drawing;
using System.Drawing;
using System.Windows.Forms;
namespace GradientPanelDemo
{
public partial class Form1 : Form
{
private GradientPanel gradientPanel1;
public Form1()
{
InitializeComponent();
CreateGradientPanel();
}
private void CreateGradientPanel()
{
// Create GradientPanel
gradientPanel1 = new GradientPanel();
gradientPanel1.Size = new Size(400, 300);
gradientPanel1.Location = new Point(20, 20);
// Set gradient background (blue to red, forward diagonal)
gradientPanel1.BackgroundColor = new BrushInfo(
GradientStyle.ForwardDiagonal,
Color.Blue,
Color.Red
);
// Add border
gradientPanel1.BorderStyle = BorderStyle.FixedSingle;
gradientPanel1.BorderColor = Color.White;
// Add to form
this.Controls.Add(gradientPanel1);
// Add child controls to the panel
Label label = new Label();
label.Text = "Gradient Panel Content";
label.ForeColor = Color.White;
label.BackColor = Color.Transparent;
label.Location = new Point(20, 20);
label.AutoSize = true;
gradientPanel1.Controls.Add(label);
}
}
}
単色背景のパネル
// Create panel with solid color background
GradientPanel solidPanel = new GradientPanel();
solidPanel.BackgroundColor = new BrushInfo(Color.MediumBlue);
solidPanel.BorderStyle = BorderStyle.FixedSingle;
solidPanel.BorderColor = Color.Red;
パターン背景のパネル
// Create panel with pattern background
GradientPanel patternPanel = new GradientPanel();
patternPanel.BackgroundColor = new BrushInfo(
PatternStyle.LargeCheckerBoard,
Color.Turquoise, // Foreground color
Color.MediumBlue // Background color
);
patternPanel.BorderStyle = BorderStyle.FixedSingle;
一般的なパターン
パターン 1:グラデーションヘッダー付きフォームセクション
// Create header panel with gradient
GradientPanel headerPanel = new GradientPanel();
headerPanel.Dock = DockStyle.Top;
headerPanel.Height = 80;
headerPanel.BackgroundColor = new BrushInfo(
GradientStyle.Horizontal,
Color.FromArgb(0, 120, 215),
Color.FromArgb(0, 80, 150)
);
// Add title label
Label titleLabel = new Label();
titleLabel.Text = "Application Header";
titleLabel.Font = new Font("Segoe UI", 18, FontStyle.Bold);
titleLabel.ForeColor = Color.White;
titleLabel.BackColor = Color.Transparent;
titleLabel.AutoSize = true;
titleLabel.Location = new Point(20, 25);
headerPanel.Controls.Add(titleLabel);
this.Controls.Add(headerPanel);
パターン 2:スクロール可能なコンテンツコンテナー
// Create scrollable content container
GradientPanel contentPanel = new GradientPanel();
contentPanel.Dock = DockStyle.Fill;
contentPanel.BackgroundColor = new BrushInfo(
GradientStyle.Vertical,
Color.WhiteSmoke,
Color.LightGray
);
contentPanel.AutoScroll = true;
contentPanel.AutoScrollMargin = new Size(5, 5);
// Add multiple child controls that exceed panel size
for (int i = 0; i < 20; i++)
{
Button btn = new Button();
btn.Text = $"Button {i + 1}";
btn.Location = new Point(10, 10 + (i * 40));
btn.Size = new Size(200, 30);
contentPanel.Controls.Add(btn);
}
this.Controls.Add(contentPanel);
パターン 3:パターン背景付きサイドバーパネル
// Create sidebar with pattern background
GradientPanel sidebarPanel = new GradientPanel();
sidebarPanel.Dock = DockStyle.Left;
sidebarPanel.Width = 200;
sidebarPanel.BackgroundColor = new BrushInfo(
PatternStyle.DarkDownwardDiagonal,
Color.Gray,
Color.DarkGray
);
sidebarPanel.BorderStyle = BorderStyle.Fixed3D;
sidebarPanel.Border3DStyle = Border3DStyle.Etched;
this.Controls.Add(sidebarPanel);
パターン 4:カードスタイルのパネルグループ
private void CreateCardPanels()
{
FlowLayoutPanel container = new FlowLayoutPanel();
container.Dock = DockStyle.Fill;
container.Padding = new Padding(10);
// Create multiple card-style panels
for (int i = 0; i < 6; i++)
{
GradientPanel card = new GradientPanel();
card.Size = new Size(180, 150);
card.Margin = new Padding(5);
card.BackgroundColor = new BrushInfo(
GradientStyle.PathRectangle,
Color.AliceBlue,
Color.SteelBlue
);
card.BorderStyle = BorderStyle.FixedSingle;
card.BorderColor = Color.SteelBlue;
// Add card content
Label cardTitle = new Label();
cardTitle.Text = $"Card {i + 1}";
cardTitle.Font = new Font("Segoe UI", 12, FontStyle.Bold);
cardTitle.BackColor = Color.Transparent;
cardTitle.AutoSize = true;
cardTitle.Location = new Point(10, 10);
card.Controls.Add(cardTitle);
container.Controls.Add(card);
}
this.Controls.Add(container);
}
主なプロパティ
背景プロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
BackgroundColor | BrushInfo | BrushInfo を使用して、グラデーション、パターン、または単色の背景を設定します |
BackColor | Color | 標準の背景色(グラデーションには BackgroundColor を使用します) |
BackgroundImage | Image | パネルの背景画像 |
BackgroundImageLayout | ImageLayout | レイアウトモード:Stretch、Tile、Center、Zoom |
境界線プロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
BorderStyle | BorderStyle | FixedSingle(2D)または Fixed3D(3D 境界線) |
Border3DStyle | Border3DStyle | 3D スタイル:Raised、Etched、Sunken、Bump など |
BorderSingle | ButtonBorderStyle | 2D スタイル:Solid、Dotted、Dashed、Inset、Outset |
BorderColor | Color | 2D 境界線の色(FixedSingle が必要です) |
BorderSides | Border3DSide | 境界線を表示する辺を指定します:All、Top、Bottom、Left、Right |
スクロールとサイズ設定のプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
AutoScroll | bool | コンテンツがパネルを超えたときに自動スクロールバーを有効にします |
AutoScrollMargin | Size | 自動スクロール時の余白の幅 |
AutoScrollMinSize | Size | 自動スクロール領域の最小論理サイズ |
AutoSize | bool | コンテンツに合わせてパネルのサイズを自動調整します |
AutoSizeMode | AutoSizeMode | GrowOnly または GrowAndShrink のサイズ変更動作 |
テキストとフォントのプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
Font | Font | パネル内のテキストのフォントスタイル |
ForeColor | Color | テキストとグラフィックの色 |
一般的なユースケース
ユースケース 1:アプリケーションダッシュボード
グラデーションスタイルを適用したダッシュボードの背景として GradientPanel を使用し、視覚的な階層とモダンな外観を実現します。
ユースケース 2:フォームセクション
背景スタイルの異なる GradientPanel を使用してフォームを論理的なセクションに分割し、視覚的に整理します。
ユースケース 3:サイドバーナビゲーション
グラデーションまたはパターン背景のサイドバーを作成し、ナビゲーション領域とコンテンツ領域を区別します。
ユースケース 4:ヘッダー/フッターセクション
横方向のグラデーションを適用したグラデーションパネルをヘッダーやフッターに使用し、プロフェッショナルな外観を実現します。
ユースケース 5:コンテンツのグループ化
関連するコントロール(ボタン、ラベル、入力欄)をグラデーションパネル内にまとめ、視覚的に整理します。
ユースケース 6:カードベースのレイアウト
各カードに個別の GradientPanel を使用し、PathRectangle グラデーションを適用してカードスタイルの UI を作成します。
ユースケース 7:テーマ付きコンテナー
統一された配色のグラデーションパネルを使用して、アプリケーション全体に一貫したテーマを適用します。
ユースケース 8:スクロール可能なコンテンツ領域
スタイル付きの背景を持つ、大きな自動スクロール対応のコンテンツ領域です。
ベストプラクティス
- グラデーションには BackgroundColor を使用する - グラデーションやパターンには
BackColorではなく、BrushInfoを指定したBackgroundColorを使用します - 境界線をスタイルに合わせる - 2D 境界線には FixedSingle、3D 境界線には Fixed3D を使用します
- 子コントロールを透明にする - グラデーションを表示するには、子コントロールの
BackColor = Color.Transparentを設定します - テキストに十分なコントラストを確保する - グラデーション上でテキストを見やすくするため、コントラストの高い
ForeColorを使用します - グラデーションに一貫性を持たせる - 関連するパネルでは、同じようなグラデーション方向を使用します
- AutoScroll を有効にする - 多数の子コントロールを含み、パネルのサイズを超える可能性がある場合に有効にします
- FixedSingle で BorderColor を使用する -
BorderColorが機能するのはBorderStyle.FixedSingleの場合のみです - カードには PathRectangle を使用する - カード風の効果には
GradientStyle.PathRectangleまたはPathEllipseを使用します - パフォーマンス - 高頻度で更新される状況では、グラデーションパネルを最小限に抑えます
- デザイナーでプレビューする - デザイナーでグラデーションをプレビューし、色をインタラクティブに調整します