3. 項目を水平方向に並べる
ListBoxコントロールに表示する1つ1つの項目はItemsPanelと呼ばれるレイアウトを制御するパネルで管理されています。
パネルの配置位置を変更したい場合は、ListBoxコントロールのControlTemplateを作成します。このとき、ItemsPanelTemplate要素内にStackPanelコントロールを置き、コントロールの配置方向を水平方向(Orientation属性をHorizontal)に設定します。
下記は、ControlTemplateとItemsPresenterを使用して、項目を水平方向に並べる例です。

<ListBox Height="60" Margin="12,12,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="138">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}"><!-- ←WPFとSilverlightではここの記述が異なるので注意-->
<!-- <ControlTemplate TargetType="ListBox"> --><!-- ←Silverlightはこっち-->
<Border BorderBrush="#808080" BorderThickness="1" Margin="0">
<ItemsPresenter Margin="5"/>
</Border>
</ControlTemplate>
</ListBox.Template>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/><!-- ←水平方向に設定-->
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBoxItem Height="50">
<StackPanel>
<Image Height="20" Name="Japan" Source="./Images/japan.gif" Width="32" />
<TextBlock>日本</TextBlock>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="50">
<StackPanel>
<Image Height="20" Name="USA" Source="./Images/usa.gif" Width="32" />
<TextBlock>アメリカ</TextBlock>
</StackPanel>
</ListBoxItem>
<ListBoxItem Height="50">
<StackPanel>
<Image Height="20" Name="Canada" Source="./Images/canada.gif" Width="32" />
<TextBlock>カナダ</TextBlock>
</StackPanel>
</ListBoxItem>
</ListBox>
項目を水平方向に配置するには、ControlTemplateを作成して対応する。このときItemsPanelTemplateにStackPanelを配置しコントロールの配置方向を水平(Horizontal)に設定する。
4. 表示項目数を取得する
表示項目数を取得するにはItemsプロパティのCountプロパティを使用します。
下記はCountプロパティを使用して、現在表示されている項目数を取得する例です。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
'項目数を取得
Dim itemCnt As Integer = ListBox1.Items.Count
MessageBox.Show("表示項目数は " & itemCnt.ToString() & " です")
End Sub
private void Button1_Click(object sender, RoutedEventArgs e)
{
// 項目数を取得
int itemCnt = listBox1.Items.Count;
MessageBox.Show("表示項目数は " + itemCnt.ToString() + " です");
}
表示項目数を取得するには、Countプロパティを使用する。
