ListBox コントロールに表示する1つ1つの項目は ItemsPanel と呼ばれるレイアウトを制御するパネルで管理されています。
パネルの配置位置を変更したい場合は、ListBox コントロールの ControTemplateを作成します。このとき、ItemsPanelTemplate 要素内に StackPanel コントロールを置き、コントロールの配置方向を水平方向(Orientation属性をHorizontal)に設定します。
XAMLの例
<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>