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プロパティを使用する。