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