SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

テーマ形式でコントロールの配色を一括管理できる.NETアプリケーションの作成

ComponentOne Studioを活用したWindowsフォームアプリケーションの作成

  • X ポスト
  • このエントリーをはてなブックマークに追加

C1ThemeControllerコンポーネントの概要

 Themes for WinFormsのC1ThemeControllerコンポーネントは、Windowsフォームとその上に配置したComponentOneコントロールの配色を、簡単にかつ一括して設定できるコンポーネントです。

 デザインには、あらかじめ用意された組み込みテーマを使用でき、また使いやすいテーマデザイナを使用して独自のテーマを作成したり、既存のテーマを変更したりすることもできます。

 そのため、複数のフォームを使用するアプリケーションでは、フォームを一つ一つ配色する必要がなく、アプリケーションに1つのテーマを設定すればすべてのフォームの配色を統一できます。

 また、一度設定した配色を変更する場合でも、アプリケーションのテーマを修正するだけで、一括して配色の変更を適用できます。

 もちろん、フォーム単体ごとにテーマを適用させることもできます。

C1ThemeControllerコンポーネントの主な特徴

 このC1ThemeControllerコンポーネントは、次のような特徴があります。

  • アプリケーション内のサポートしているComponentOneコントロールすべてに同じテーマを適用できる
  • フォーム内のサポートしているComponentOneコントロールすべてに同じテーマを適用できる
  • フォーム内のサポートしているComponentOneコントロールすべてに異なるテーマを適用できる
  • 設計時または実行時に、1回のクリックでアプリケーションの外観を変更できる
  • 使いやすいテーマデザイナを使用して、実際のコーディングとは別に、(プログラマではなく)ビジュアルデザイナがアプリケーションの外観を設計/変更できる
  • 組み込みテーマを使用することも、一から独自のテーマを作成することも、組み込みテーマを変更することもできる
  • 独自に作成したテーマを配布することができるので、C1 WinFormsコントロールを使用して構築されているアプリケーションであれば、企業内の他のアプリケーションでそのテーマを使用できる
  • テーマの内部では、テーマ全体で1つの共通プロパティリポジトリ(基本テーマプロパティ)を参照できるため、簡単に変更できるテーマを統一的に作成できる

テーマ適用可能な ComponentOne WinForms コントロール

 C1ThemeControllerコンポーネントは、以下の ComponentOne WinForms コントロールをサポートします。

ComponentOne WinForms製品 コントロール名
Chart for WinForms C1Chart and C1Chart3D
FlexGrid for WinForms C1FlexGrid
GannttView for WinForms C1GanttView
Input for WinForms C1Textbox, C1DateEdit, C1NumericEdit, C1DropDownControl, C1DbNavigator, C1CheckBox, C1Button, C1Label, C1PictureBox, C1SplitButton, C1ComboBox
InputPanel for WinForms C1InputPanel
Menus and ToolBars for WinForms C1DockingTab, C1MainMenu, C1ContextMenu, C1ToolBar, C1TopicBar, C1NavBar, C1OutBar, C1RadialMenu
Report for WinForms C1Report, C1PrintPreview, C1PreviewPane, C1PreviewThumbnailView, C1PreviewOutlineView, C1PreviewTextSearchPanel, C1PrintPreviewDialog, C1ReportDesigner
Ribbon for WinForms C1Ribbon and C1StatusBar
Scheduler for WinForms C1Schedule and C1Calendar
SplitContainer for WinForms C1SplitContainer
SuperToolTip for WinForms C1SuperToolTip, C1SuperErrorProvider C1SuperLabel
TileControl for WinForms C1TileControl
TrueDBGrid for WinForms C1TrueDBGrid

テーマの概念と組み込みのテーマ

 テーマは、サポートしているコントロールの外観を決定するプロパティに対して、統一的に値を設定するためのXMLドキュメントです。ファイルに保存すると.c1theme拡張子が付きます。

 C1ThemeControllerコンポーネントを使用して、実行時や設計時にアプリケーション内のフォームにテーマを適用すると、そのフォーム内のすべてのコントロールの外観がテーマに従って変更されます。

 テーマはさまざまなComponentOneコントロールに対し、細かな部位で配色の設定が行えます。テーマが適用されると、各コントロールは設定した配色だけが変更されます。これにより、どれほど小さくて特殊なコントロールの細部にも、カスタマイズした「テーマ付きの」外観を適用できます。

 テーマの統一感は参照メカニズムによって実現されます。これは、個々のコントロールの色やフォントといったプロパティが、テーマの他のすべてのセクションからアクセス可能な共通のリポジトリを参照できるようにします。この共通リポジトリを「基本テーマプロパティ」と呼びます。

 この基本テーマプロパティは、コントロールのプロパティに直接適用されませんが、コントロールで使用される実際のプロパティの指定時に、テーマの作成者がそれらのプロパティを参照できます。

 さらに、テーマは標準のWindowsフォームやボタン、ラベルなどのコントロールに対しても一部適用することができます。

 C1ThemeControllerコンポーネントにあらかじめ組み込まれているテーマは次のとおりです。

  • BeigeOne.c1theme
  • ExpressionDark.c1theme
  • ExpressionLight.c1theme
  • GreenHouse.c1theme
  • MacBlue.c1theme
  • MacSilver.c1theme
  • Office2007Black.c1theme
  • Office2007Blue.c1theme
  • Office2007Silver.c1theme
  • Office2010Barbie.c1theme
  • Office2010Black.c1theme
  • Office2010Blue.c1theme
  • Office2010Green.c1theme
  • Office2010Red.c1theme
  • Office2010Silver.c1theme
  • Office2013DarkGray.c1theme
  • Office2013Green.c1theme
  • Office2013Grey.c1theme
  • Office2013HighContrast.c1theme
  • Office2013LightGray.c1theme
  • Office2013Red.c1theme
  • Office2013White.c1theme
  • RanierOrange.c1theme
  • ShinyBlue.c1theme
  • Violette.c1theme
  • VisualStyleOffice2010Black.c1theme
  • VisualStyleOffice2010Blue.c1theme
  • VisualStyleOffice2010Silver.c1theme
  • VS2013Blue.c1theme
  • VS2013Dark.c1theme
  • VS2013DarkSolar.c1theme
  • VS2013Green.c1theme
  • VS2013Light.c1theme
  • VS2013Purple.c1theme
  • VS2013Red.c1theme
  • VS2013Tan.c1theme
  • Windows8Blue.c1theme
  • Windows8Brown.c1theme
  • Windows8Gray.c1theme
  • Windows8Green.c1theme
  • Windows8Red.c1theme
  • デフォルト(現在のコンテキストのデフォルトテーマを指定)
  • なし(テーマを適用しないことを指定)

C1ThemeControllerダイアログボックス

 テーマを適用する際は、専用のダイアログボックスを使用します。

ダイアログボックスの外観と各部の名称(ヘルプより抜粋)
ダイアログボックスの外観と各部の名称(ヘルプより抜粋)
[アプリケーションテーマ]ドロップダウンリストボックス

 アプリケーション全体の(デフォルト)テーマを指定するために使用されます。このテーマの名前は、App.configファイルに保存されます。

[C1ThemeController1 テーマ]ドロップダウンリストボックス

 現在のC1ThemeControllerのデフォルトテーマを指定します。値 "(デフォルト)" は、ApplicationThemeで指定されるアプリケーション全体のテーマが使用されることを示します。

[選択されたテーマ]ドロップダウンリストボックス

 フォーム内のサポートされているすべてのコントロールには、「c1ThemeController1のテーマ」拡張プロパティが追加されます。

 このプロパティを特定のテーマ名に設定すると、テーマコントローラのデフォルトテーマに関係なく、そのテーマが現在のコントロールに適用されます。

 これにより、必要に応じて、同じフォーム内の異なるコントロールに異なるテーマを適用できます。このプロパティは、「デフォルト」と「なし」の2つの特別な値をサポートします。デフォルト値は、コントロールに現在のフォームのC1ThemeControllerに指定されたデフォルトテーマが使用されることを意味します。「なし」は、コントロールにテーマが適用されないことを意味します。

[すべてを(デフォルト)に設定]ボタン

 フォームのすべてのコントロールにデフォルトテーマを設定します。

[すべてを(なし)に設定]ボタン

 テーマを「なし」に設定します。フォーム内のコントロールにはテーマが適用されません。

テーマデザイナ(C1ThemeDesigner)について

 テーマデザイナを使用することで、組み込みテーマの配色の変更やオリジナルのテーマの作成が行えます。

 テーマデザイナは単独のアプリケーションとしてインストールされ、スタートメニューから起動します。

テーマデザイナの起動
テーマデザイナの起動

 デザイナを起動すると、下図の状態で表示されます。新しくテーマを作成することも、すでにあるテーマを修正することも可能で、作成・修正したテーマをファイルに保存することができます。

 デザイナは単独のアプリケーションなので、Visual Studioと並行して使用することができ、作成したテーマやテーマの修正をすぐに作成中のアプリケーションに反映させることができます。

テーマデザイナの起動画面
テーマデザイナの起動画面

 新規作成を選ぶと、デザイン画面に移行します。「テーマツリー」で操作対象のコントロールを選び、それぞれの色のプロパティを変更します。

 変更結果は隣のペインにある「テーマのプレビュー」に反映され、設定結果を確認しながらデザインを進めることができます。

テーマデザイナの新規作成画面
テーマデザイナの新規作成画面

次のページ
テーマの設定(1)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8144 2014/11/25 17:29

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング