SimpleListBox および SimpleListBoxItem
リスト ボックスは、スクロール可能な一覧として表示されるアイテム コントロールです。Microsoft Expression Blend でリスト ボックスにコンテンツを配置するには、リスト ボックスをダブルクリックしてオブジェクト (四角形など) を描画します。または、[オブジェクトとタイムライン] パネルでリスト ボックスを右クリックし、[SimpleListBoxItem の追加] をクリックしてコレクションに各アイテムを追加するか、[ItemsSource を Data にバインド] をクリックして、データソースから SimpleListBoxItem オブジェクトのコレクションを生成します。コレクションに個別のアイテムを追加する場合、リスト ボックスをダブルクリックしてアクティブにし、アイテムをドラッグして目的の位置に移動することにより、アイテムの順序を変更できます。リスト ボックスの [SelectedIndex] プロパティを使用して、既定で選択されるアイテムを設定できます。
アートボード上のアイテムが 2 つ追加された後の SimpleListBox コントロール
コントロール テンプレートの構成要素
SimpleListBox コントロール テンプレートは、次の要素で構成されています。
Grid パネル: リスト ボックス内に複数の子要素を保持するために使用します。また、Grid を使用すると、アプリケーション ユーザー インターフェイス (UI) デザイナーは複数のオブジェクトを簡単にテンプレートに追加できます。
Border 要素: BorderThickness プロパティが含まれています。このプロパティは、このテンプレートの適用先リスト ボックス コントロールの BorderThickness プロパティにテンプレート バインドできます。
ScrollViewer 要素: リストが長い場合に、アプリケーションのユーザーがリストをスクロールできるようにするために使用します。
StackPanel: ScrollViewer オブジェクト内に含まれ、アイテムを配置します。StackPanel の IsItemsHost プロパティは True に設定され、ScrollViewer が、このテンプレートが適用されるリスト ボックス コントロールのアイテムを表示するオブジェクトであることが識別されます。StackPanel を別のパネル オブジェクトに変更するには、[オブジェクトとタイムライン] パネルで StackPanel オブジェクトを右クリックし、[レイアウトの種類の変更] を UniformGrid などに変更します。
SimpleListBoxItem コントロール テンプレートは、次の要素で構成されています。
Grid パネル: リスト ボックスのアイテム内に複数の子を保持するために使用します。また、Grid を使用すると、デザイナーは複数のオブジェクトを簡単にテンプレートに追加できます。
Border 要素: BorderThickness プロパティが含まれています。このプロパティは、このテンプレートの適用先ボタン コントロールの BorderThickness プロパティにテンプレート バインドできます。
ContentPresenter 要素: Grid オブジェクト内に含まれ、このテンプレートが適用されるアイテム コントロールの Content プロパティに自動的にバインドされます。
使用されるプロパティ トリガー
コントロール テンプレートのプロパティ トリガーは、プロパティの変更にコントロールを対応させるために使用されます。[トリガー] パネルのアイテムをクリックすると、トリガーがアクティブになると変更されるプロパティを表示できます。たとえば、リスト ボックス用のテンプレートでは、リスト ボックス アイテムの IsSelected プロパティが True のときに、アイテムの背景色が変更されます。リスト ボックス アイテム用のテンプレートでは、IsHighlighted プロパティが True のときに、Border オブジェクトの Background プロパティが変更され、リスト ボックス内で選択されたアイテムを示します。
使用されるブラシ
SimpleListBox テンプレートおよび SimpleListBoxItem テンプレートでは、SimpleStyles.xaml リソース ディクショナリ内の次のブラシ リソースが使用されます。
Background プロパティは、アクティブなトリガーがないときは WindowBackgroundBrush を使用して、IsEnabled が False のときは DisabledBackgroundBrush を使用して設定されます。
BorderBrush プロパティは、SolidBorderBrush (アクティブなトリガーが存在しない場合) および DisabledBorderBrush (IsEnabled が False の場合) を使用して設定されます。
SimpleListBoxItem テンプレートを使用するアイテムが SimpleListBox に設定されている場合、アイテムが選択されているときはアイテムの Background プロパティは SelectedBackgroundBrush を使用して設定され、IsEnabled が False のときは Foreground プロパティは DisabledForegroundBrush を使用して設定されます。
関連項目
タスク
試してみよう: SimpleListBox の選択アイテムの外観の変更
Copyright ©2011 by Microsoft Corporation. All rights reserved.