mcpField
S
syncfusion-winforms-theming

syncfusion-winforms-theming

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

syncfusion-winforms-theming について

Syncfusion Windows Forms アプリのテーマ適用とカスタマイズを扱うリファレンススキルです。SkinManager の設定やテーマ選択、アプリ全体・フォーム・個別コントロールへのスタイル適用を説明します。

主な機能

  1. 01アプリ全体・個別コントロールのテーマ
  2. 02組み込みテーマとカスタムテーマ
  3. 03必要なテーマアセンブリの読み込み
  4. 04スタイルとフォントのカスタマイズ
  5. 05テーマによる上書きの制御

活用シーン

  1. 01複数フォームのスタイル統一
  2. 02実行時のテーマ切り替え
  3. 03ダークまたはハイコントラストテーマの使用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-theming

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

同梱ファイル

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

references/
advanced-customization.md
getting-started.md
theme-management.md

詳細

Windows Forms のテーマ設定(SkinManager)

Syncfusion Windows Forms SkinManager は、アプリケーション内のすべての Syncfusion コントロールに一貫したテーマを適用できます。あらかじめ定義されたテーマや Theme Studio ベースのカスタムテーマを使用して、アプリケーション全体、フォーム、または個々のコントロールに統一されたスタイルを設定できます。

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

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

  • Syncfusion WinForms コントロールにテーマを適用する(Office2007、Office2010、Office2013、Office2016、Office2019、Metro)
  • テーマのアセンブリを設定し、正しく読み込む
  • アプリケーション全体、フォーム、またはコンテナーにテーマを適用する
  • ThemeStyle プロパティまたは Style プロパティを使用してテーマの外観をカスタマイズする
  • デザイナーまたはコードを使用してテーマを適用する
  • テーマでユーザーのカスタマイズを上書きするかどうかを制御する

コンポーネントの概要

SkinManager は、Syncfusion Windows Forms コントロールへのテーマ適用を管理するコンポーネントです。次の機能をサポートします。

  • 複数の定義済みテーマ(Office2007、Office2010、Office2013、Office2016、Office2019、Metro、HighContrast)
  • アプリケーション全体のテーマ管理
  • フォーム/コンテナーレベルでのテーマ適用
  • 個々のコントロールへのテーマ適用
  • ThemeStyle/Style プロパティによる高度なスタイル設定

主要なアセンブリ: Syncfusion.Shared.Base

追加のアセンブリ: 一部のテーマには、別途アセンブリが必要です(Office2016Theme、Office2019Theme、HighContrastTheme)。

ドキュメントおよびナビゲーションガイド

はじめに

📄 参照: references/getting-started.md

  • アセンブリの配置とテーマアセンブリの要件
  • LoadAssembly メソッドを使用したテーマアセンブリの読み込み
  • デザイナーを使用した SkinManager コンポーネントの追加
  • コードを使用した SkinManager コンポーネントの追加
  • コントロールおよびフォームへの基本的なテーマ適用
  • フォーム全体およびコンテナーへのテーマ適用
テーマ管理

📄 参照: references/theme-management.md

  • 使用可能なテーマの完全な一覧
  • VisualTheme プロパティの使用方法
  • プログラムからテーマを設定する SetVisualTheme メソッド
  • ApplicationVisualTheme を使用したアプリケーション全体のテーマ設定
  • ThemeName プロパティを使用した個々のコントロールのテーマ設定
  • 特定のテーマに必要なアセンブリ
  • テーマ適用のパターンとベストプラクティス
高度なカスタマイズ

📄 参照: references/advanced-customization.md

  • テーマをカスタマイズする ThemeStyle プロパティ
  • Sf プレフィックス付きコントロール用の Style プロパティ
  • CanOverrideStyle プロパティの動作
  • アプリケーション全体のフォントを設定する FontHelper のカスタマイズ
  • カスタムスタイルの例とパターン
  • テーマによるユーザーカスタマイズの上書き

クイックスタートの例

基本的なテーマ適用(コードを使用)
using Syncfusion.Windows.Forms;

namespace MyWinFormsApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            
            // Create SkinManager instance
            SkinManager skinManager1 = new SkinManager(this.components);
            
            // Apply theme to entire form (all Syncfusion controls)
            skinManager1.Controls = this;
            skinManager1.VisualTheme = VisualTheme.Office2016Black;
        }
    }
}
アプリケーション全体のテーマ(Program.cs)
using Syncfusion.Windows.Forms;
using Syncfusion.WinForms.Themes;

static class Program
{
    [STAThread]
    static void Main()
    {
        // Load theme assembly (for Office2019, Office2016, HighContrast)
        SkinManager.LoadAssembly(typeof(Office2019Theme).Assembly);
        
        // Set application-wide theme
        SkinManager.ApplicationVisualTheme = "Office2019Colorful";
        
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

よく使われるパターン

パターン 1:フォーム全体にテーマを適用
// Apply theme to all Syncfusion controls in a form
SkinManager skinManager1 = new SkinManager(this.components);
skinManager1.Controls = this; // 'this' refers to the form
skinManager1.VisualTheme = VisualTheme.Office2016White;
パターン 2:個々のコントロールにテーマを適用
// Option 1: Using SkinManager
skinManager1.Controls = treeViewAdv1;
skinManager1.VisualTheme = VisualTheme.Office2016Colorful;

// Option 2: Using ThemeName property
this.treeViewAdv1.ThemeName = "Office2019Colorful";
パターン 3:必要なテーマアセンブリを読み込む
// Office2019 themes
SkinManager.LoadAssembly(typeof(Office2019Theme).Assembly);

// Office2016 themes (for SfDataGrid, SfButton, etc.)
SkinManager.LoadAssembly(typeof(Syncfusion.WinForms.Themes.Office2016Theme).Assembly);

// HighContrast themes
SkinManager.LoadAssembly(typeof(HighContrastTheme).Assembly);
パターン 4:テーマの外観をカスタマイズ
// For Theme Studio themes, customize using ThemeStyle
this.treeViewAdv1.ThemeName = "Office2019Colorful";
this.treeViewAdv1.ThemeStyle.BackColor = System.Drawing.Color.White;
this.treeViewAdv1.ThemeStyle.BorderColor = System.Drawing.Color.SteelBlue;
this.treeViewAdv1.ThemeStyle.TreeNodeAdvStyle.TextColor = System.Drawing.Color.Red;

主要なプロパティとメソッド

SkinManager のプロパティ
プロパティ説明型
Controlsテーマを適用する親コントロール/フォームを指定しますControl
VisualTheme適用するテーマスタイルを指定しますEnum (VisualTheme)
ApplicationVisualThemeアプリケーション全体のテーマを設定します(静的プロパティ)String
SkinManager のメソッド
メソッド説明パラメーター
SetVisualTheme(Control, VisualTheme)指定したコントロールにテーマを適用しますControl, VisualTheme enum
SetVisualTheme(Control, String)指定したコントロールにテーマを適用しますControl, theme name string
LoadAssembly(Assembly)テーマを適用する前にテーマアセンブリを読み込みますAssembly object
コントロールレベルのプロパティ
プロパティ説明対象
ThemeName個々のコントロールに適用するテーマ名すべての Syncfusion コントロール
ThemeStyleテーマの外観プロパティをカスタマイズしますSf 以外のコントロール
Styleテーマの外観プロパティをカスタマイズしますSf で始まるコントロール
CanOverrideStyleテーマによるユーザーのカスタマイズの上書きを許可しますTheme Studio 対応コントロール

利用可能なテーマ

定義済みテーマ(組み込み)
  • Office2007:Blue、Black、Silver、Managed
  • Office2010:Blue、Black、Silver、Managed
  • Office2013:White、Dark Gray、Black、Colorful
  • Metro
別アセンブリのテーマ
  • Office2016:White、Dark Gray、Black、Colorful(Syncfusion.Office2016Theme.WinForms.dll が必要です)
  • Office2019:Colorful(Syncfusion.Office2019Theme.WinForms.dll が必要です)
  • HighContrast:Black(Syncfusion.HighContrastTheme.WinForms.dll が必要です)

よくある使用例

  1. アプリケーション全体で統一されたスタイル:すべてのフォームとコントロールに一貫したテーマを適用します
  2. モダンな UI の外観:現代的な外観にするため、Office2016/2019 のテーマを使用します
  3. ダークモードのサポート:ダークテーマ(Office2016Black、Office2016DarkGray)を実装します
  4. アクセシビリティへの準拠:アクセシビリティのために HighContrast テーマを使用します
  5. テーマの動的切り替え:ユーザー設定に基づいて、実行時にテーマを変更します
  6. フォームごとのテーマ設定:同じアプリケーション内のフォームごとに異なるテーマを適用します

重要な注意事項

  • アセンブリの読み込み:別アセンブリが必要なテーマを適用する前に、必ず LoadAssembly() を呼び出してください
  • アプリケーション全体のテーマ:メインフォームの初期化前に(Program.cs で)ApplicationVisualTheme を設定してください
  • コンテナーのテーマ設定:効率化のため、個々のコントロールではなくフォーム/コンテナーにテーマを適用してください
  • 上書きの動作:テーマは CanOverrideStyle プロパティに従ってカスタマイズを上書きするかどうかを制御します

トラブルシューティング

テーマが適用されない場合:

  • LoadAssembly() を使用してテーマアセンブリが読み込まれていることを確認してください
  • Controls プロパティが正しく設定されていることを確認してください
  • テーマ名のスペルが正確であること(大文字と小文字を区別)を確認してください

カスタムテーマが機能しない場合:

  • カスタムテーマアセンブリがプロジェクトで参照されていることを確認してください
  • テーマを適用する前に LoadAssembly() が呼び出されていることを確認してください
  • テーマ名がアセンブリ名と完全に一致することを確認してください

外観のカスタマイズが反映されない場合:

  • Theme Studio ベースのテーマ(Office2019Colorful、HighContrastBlack)を使用していることを確認してください
  • カスタマイズを保持する場合は、CanOverrideStyle が false に設定されていることを確認してください
  • Sf 以外のコントロールには ThemeStyle を、Sf で始まるコントロールには Style を使用してください

コメント