mcpField
S
syncfusion-winforms-gradient-panel

syncfusion-winforms-gradient-panel

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

syncfusion-winforms-gradient-panel について

Windows Forms アプリケーションで Syncfusion GradientPanel をスタイル付きコンテナーとして使うためのスキルです。グラデーション、パターン、画像、枠線、スクロール、サイズ設定を扱います。

主な機能

  1. 01グラデーション、パターン、単色の背景
  2. 02複数のグラデーション方向
  3. 032D・3D 枠線のカスタマイズ
  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-gradient-panel

インストール後、Claude Code で/syncfusion-winforms-gradient-panelを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
appearance-customization.md
background-styles.md
border-settings.md
getting-started.md
scroll-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);
}

主なプロパティ

背景プロパティ
プロパティ型説明
BackgroundColorBrushInfoBrushInfo を使用して、グラデーション、パターン、または単色の背景を設定します
BackColorColor標準の背景色(グラデーションには BackgroundColor を使用します)
BackgroundImageImageパネルの背景画像
BackgroundImageLayoutImageLayoutレイアウトモード:Stretch、Tile、Center、Zoom
境界線プロパティ
プロパティ型説明
BorderStyleBorderStyleFixedSingle(2D)または Fixed3D(3D 境界線)
Border3DStyleBorder3DStyle3D スタイル:Raised、Etched、Sunken、Bump など
BorderSingleButtonBorderStyle2D スタイル:Solid、Dotted、Dashed、Inset、Outset
BorderColorColor2D 境界線の色(FixedSingle が必要です)
BorderSidesBorder3DSide境界線を表示する辺を指定します:All、Top、Bottom、Left、Right
スクロールとサイズ設定のプロパティ
プロパティ型説明
AutoScrollboolコンテンツがパネルを超えたときに自動スクロールバーを有効にします
AutoScrollMarginSize自動スクロール時の余白の幅
AutoScrollMinSizeSize自動スクロール領域の最小論理サイズ
AutoSizeboolコンテンツに合わせてパネルのサイズを自動調整します
AutoSizeModeAutoSizeModeGrowOnly または GrowAndShrink のサイズ変更動作
テキストとフォントのプロパティ
プロパティ型説明
FontFontパネル内のテキストのフォントスタイル
ForeColorColorテキストとグラフィックの色

一般的なユースケース

ユースケース 1:アプリケーションダッシュボード

グラデーションスタイルを適用したダッシュボードの背景として GradientPanel を使用し、視覚的な階層とモダンな外観を実現します。

ユースケース 2:フォームセクション

背景スタイルの異なる GradientPanel を使用してフォームを論理的なセクションに分割し、視覚的に整理します。

ユースケース 3:サイドバーナビゲーション

グラデーションまたはパターン背景のサイドバーを作成し、ナビゲーション領域とコンテンツ領域を区別します。

ユースケース 4:ヘッダー/フッターセクション

横方向のグラデーションを適用したグラデーションパネルをヘッダーやフッターに使用し、プロフェッショナルな外観を実現します。

ユースケース 5:コンテンツのグループ化

関連するコントロール(ボタン、ラベル、入力欄)をグラデーションパネル内にまとめ、視覚的に整理します。

ユースケース 6:カードベースのレイアウト

各カードに個別の GradientPanel を使用し、PathRectangle グラデーションを適用してカードスタイルの UI を作成します。

ユースケース 7:テーマ付きコンテナー

統一された配色のグラデーションパネルを使用して、アプリケーション全体に一貫したテーマを適用します。

ユースケース 8:スクロール可能なコンテンツ領域

スタイル付きの背景を持つ、大きな自動スクロール対応のコンテンツ領域です。

ベストプラクティス

  1. グラデーションには BackgroundColor を使用する - グラデーションやパターンには BackColor ではなく、BrushInfo を指定した BackgroundColor を使用します
  2. 境界線をスタイルに合わせる - 2D 境界線には FixedSingle、3D 境界線には Fixed3D を使用します
  3. 子コントロールを透明にする - グラデーションを表示するには、子コントロールの BackColor = Color.Transparent を設定します
  4. テキストに十分なコントラストを確保する - グラデーション上でテキストを見やすくするため、コントラストの高い ForeColor を使用します
  5. グラデーションに一貫性を持たせる - 関連するパネルでは、同じようなグラデーション方向を使用します
  6. AutoScroll を有効にする - 多数の子コントロールを含み、パネルのサイズを超える可能性がある場合に有効にします
  7. FixedSingle で BorderColor を使用する - BorderColor が機能するのは BorderStyle.FixedSingle の場合のみです
  8. カードには PathRectangle を使用する - カード風の効果には GradientStyle.PathRectangle または PathEllipse を使用します
  9. パフォーマンス - 高頻度で更新される状況では、グラデーションパネルを最小限に抑えます
  10. デザイナーでプレビューする - デザイナーでグラデーションをプレビューし、色をインタラクティブに調整します

コメント