データを表示するコントロールのスタイルを設定する
データは、データのアイテムをアートボードのオブジェクトにバインドすることにより表示します。データ アイテムは、どのようなプロパティにもバインドできます。たとえば、色を表す 16 進数値を四角形の Background プロパティにバインドしたり、データ アイテムのコレクションを [ListBox] オブジェクトの [ItemsSource ]プロパティにバインドしたりします。
データを表示するオブジェクトのスタイルを設定するには、オブジェクトのプロパティを変更します。オブジェクトがテンプレートを使用する場合は、オブジェクトに適用されたテンプレートの 1 つを変更します。
[プロパティ] パネルを使用したオブジェクトのプロパティの変更
アートボードでオブジェクトを選択すると、[プロパティ] パネルでプロパティの値を変更して、そのオブジェクトの外観などを変更することができます。
たとえば、[DataGrid] オブジェクトをデータにバインドしてから、そのオブジェクトの列見出しを変更します。
[DataGrid] オブジェクトの列見出しの変更
さらに、[DataGrid] オブジェクトの [AlternatingRowBackground] プロパティを使用すると、1 行おきに付ける色を指定できます。
[DataGrid] オブジェクトの 1 行おきに付ける色の変更
オブジェクトの変更の一般的な情報については、「オブジェクトおよびプロパティの使用」を参照してください。
個々のオブジェクトの詳細については、Windows Presentation Foundation のクラス ライブラリに関するトピック (「System.Windows.Controls Namespace」の下) およびMicrosoft Silverlight (「System.Windows.Controls Namespace」の下) を参照してください。
オブジェクトに適用されたテンプレートの 1 つの変更
オブジェクトがテンプレートを使用するコントロールの場合は、そのテンプレートを変更して、オブジェクトの外観や同じテンプレートを使用する他のオブジェクトすべての外観を変更できます。
コントロールの多くは、その部分ごとに異なるテンプレートを使用します。たとえば、[ListBox] コントロールは入れ子になった多数のテンプレートを使用します。これには、スクロール ビューアー、スクロール バー、スクロール バーのボタン、ページング ボタンなどがあります。
[ListBox] コントロールの入れ子されたテンプレート
[ListBox] コントロール。アイテムの一覧を含むコンテナーです。データ ソースのアイテムにバインドすることも、バインドせずに個別のオブジェクトを表示することもできます。 |
|
[ListBox] テンプレート内の [ScrollViewer] コントロール。 |
|
[ListBox] コントロール内のバインドされていないアイテム。 |
|
ScrollViewer テンプレート内にある縦の [ScrollViewer] コントロール。 |
|
ScrollBar テンプレート内にある縦の [Thumb] コントロール。 |
|
ScrollBar テンプレート内にある縦の [RepeatButton] コントロール。[ScrollBar] コントロールの値を一度に大きく減らします。 |
|
[ScrollBar] テンプレート内にある縦の [RepeatButton] コントロール。[ScrollBar] コントロールの値を少しずつ減らします。 |
また、[ListBox] コントロールには、オブジェクトの各行に表示するアイテムのスタイルを設定するデータ テンプレートもあります。データ テンプレートは、オブジェクトにバインドするアイテム特有のテンプレートです。たとえば、 [データ] パネルから文字列のデータ アイテムとイメージのデータ アイテムを [ListBox] にドラッグすると、データ テンプレートに、文字列とイメージ ファイルを表示する [TextBlock] が作成されます。これらのオブジェクトはデータ テンプレートでスタイルを設定します。
データにバインドされている [ListBox] オブジェクトのデータ テンプレート
コントロールの外観を既定とはまったく違ったものにすることができます。たとえば、[ListBox[ オブジェクトの既定の外観は次のようになります。
既定のテンプレートを使った [ListBox] オブジェクト
しかし、テンプレートを変更すると、次のように変えることができます (Microsoft Expression Blend に付属している ColorSwatchSL サンプルを使用した場合)。
ListBox オブジェクトの2 つの (ItemContainerStyle と ItemsPanel) を変更した場合
オブジェクトに適用したテンプレートにアクセスするには、オブジェクトを右クリックするか、オブジェクトを選択してからアートボードの上端にある階層リンク バーを使用します。
階層リンク バーを使用してテンプレートを開く
テンプレート内でも、テンプレートの外と同じようにして、オブジェクトの追加、削除、変更を行えます。アイテムを選択できる一覧を含むという [ListBox] コントロールの機能自体は変わりません。
データ テンプレートの変更例については、「DataGrid コントロールの使用」 および「 TreeView コントロールを使用する」を参照してください。
コントロールのスタイル設定の一般的な情報については、「オブジェクトのスタイル指定」を参照してください。
コントロールのパーツとテンプレートの詳細については、「一般的な Silverlight コントロールのスタイル処理のヒント」、または MSDN の Windows Presentation Foundation のクラス ライブラリに関するトピック (「System.Windows.Controls Namespace」の下) および Silverlight (「System.Windows.Controls Namespace」の下) を参照してください。
また、「Learn Expression Blend」で、コントロールのスタイル設定のチュートリアルとビデオを見ることもできます。