wpf中ListBox默认是只有一列显示子项内容的,通过wpf灵活的样式机制,是可以将listbox改为多列显示,这也是wpf样式的强大之处。
当然,实现多列子项展示,也可以改为使用listView或者GridView。
下面是一个简单的方法,通过样式更改listbox的itemsPanel,使他显示多列。
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="3"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
<ListBoxItem>Item</ListBoxItem>
< /ListBox>
<ListBox Grid.Column="2" Grid.RowSpan="2" FontSize="18" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" >
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="#FFEEF2BA"></Setter>
<Setter Property="Padding" Value="5"></Setter>
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="LightBlue"></Setter>
</Trigger>
<Trigger Property="IsFocused" Value="True"/>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="SteelBlue" />
<Setter Property="Foreground" Value="Red"></Setter>
<Setter Property="BorderBrush" Value="Black"></Setter>
<Setter Property="BorderThickness" Value="1"></Setter>
<Setter Property="Padding" Value="5"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem Tag="1">快餐类</ListBoxItem>
<ListBoxItem Tag="2">饮料类</ListBoxItem>
<ListBoxItem Tag="3">小炒类</ListBoxItem>
<ListBoxItem Tag="4">汤类</ListBoxItem>
<ListBoxItem Tag="4">单点类</ListBoxItem>
<ListBoxItem Tag="4">套餐类</ListBoxItem>
<ListBoxItem Tag="4">早餐类</ListBoxItem>
<ListBoxItem Tag="4">酒水</ListBoxItem>
<ListBoxItem Tag="4">美团套餐</ListBoxItem>
<ListBoxItem Tag="4">面类</ListBoxItem>
<ListBoxItem Tag="4">小吃类</ListBoxItem>
<ListBoxItem Tag="4">员工餐</ListBoxItem>
<ListBoxItem Tag="4">套餐汤类套餐汤类</ListBoxItem>
<ListBoxItem Tag="1">快餐类</ListBoxItem>
<ListBoxItem Tag="2">饮料类</ListBoxItem>
<ListBoxItem Tag="3">小炒类</ListBoxItem>
<ListBoxItem Tag="4">汤类</ListBoxItem>
<ListBoxItem Tag="4">单点类</ListBoxItem>
<ListBoxItem Tag="4">套餐类</ListBoxItem>
<ListBoxItem Tag="4">早餐类</ListBoxItem>
<ListBoxItem Tag="4">酒水</ListBoxItem>
<ListBoxItem Tag="4">美团套餐</ListBoxItem>
<ListBoxItem Tag="4">面类</ListBoxItem>
<ListBoxItem Tag="4">小吃类</ListBoxItem>
<ListBoxItem Tag="4">员工餐</ListBoxItem>
<ListBoxItem Tag="4">套餐汤类套餐汤类</ListBoxItem>
</ListBox>
这篇文档对您是否有帮助?