添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

网格通常可以用GridView显示,但是GridView的使用方法有一些复杂,有时只想显示简单的图片或文字时,使用ListBox就会方便很多,而且ListBox也支持表格布局的拓展。

一、如何实现?

ListBox中有个属性叫ItemsPanel,是元素的容器。我们可以将这个属性设为自己的容器,一般使用WrapPanel即可实现表格布局的效果,给WrapPanel设置一个宽度,只要超过宽度的元素就会换行。
示例代码如下:

<ListBox.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapPanel Width="360"></WrapPanel>
    </ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox  Height="400"   Width="360" >
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Width="360"></WrapPanel>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Margin="20"  FontSize="32"   Foreground="#666666"  Text="张三"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
    <ListBox.Items>
        <Control/>
        <Control/>
        <Control/>
        <Control/>
        <Control/>
        <Control/>
        <Control/>
        <Control/>
        <Control/>
    </ListBox.Items>
</ListBox>

效果预览:
在这里插入图片描述

以上就是今天要讲的内容,本文简单说明了ListBox显示网格方法,这种方法简单方便,非常适合UI设计的简约表格布局的实现。 自定义 ListBox 的控件面板 在默认情况下,ListBox 的子项目显示类似于默认的 StackPanel,在水平方向为 Strench 垂直方向进行堆叠. 而有时候,为了控制子元素的布局方式,需要自定义 ListBox 的内部面板,例如为了实现下面的效果 可以看到,上面采用的是双列布局,实际上用的是 UniformGrid 控件作为 ListBox 的内部面板,因此,对于绑定的数据集合,就相当于是在一个 UniformGrid 进行放置,唯一区别的是,每个子元素的范围是其实际的占用区域,在其外部 尺子在客户端开发有一定的应用场景,比如厘米尺、白板的画线尺、视频剪辑的时间尺。一般可以采用用户控件通过自绘的方式实现,但今天我要讲一个不一样的方法,不使用自定义控件也不用用户控件,只需要ListBox即能实现一把尺子。............ <Grid> <ListBox Height="181" HorizontalAlignment="Left" Margin="12,12,0,0" Name="listBox1" VerticalAlignment="Top" Width="687" UseLayoutRounding="False" Panel.ZIndex="2" &gt... ListBox 的ItemsPanel 属性可以指定定义显示各子项的面板的模板。你可以通过定义自己的模板重写ListBox 常见的垂直堆叠式布局。如果你设置了ItemsPanel 模板为WrapPanelListBox 将会有WrapPanel的特性。在下面的例子,我们将上一篇ListBox 稍作修改。指定ItemsPanel 包含一个WrapPanel。&lt;Grid&gt; ... <ListBox.ItemsPanel> <ItemsPanelTemplate> <VirtualizingStackPanel Orientation="Horizontal"/> </ItemsPanelTemplate> </L... <ListBox ItemsSource="{Binding ListFun}" BorderThickness="0" Margin="25 0 0 0"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <UniformGrid Columns="4" Rows="2" > ListBoxItemsPanel 属性可以指定定义显示各子项的面板的模板。你可以通过定义自己的模板重写ListBox 常见的垂直堆叠式布局。 如果你设置了ItemsPanel 模板为WrapPanelListBox 将会有WrapPanel的特性。 在下面的例子,我们将上一篇ListBox 稍作修改。指定ItemsPanel 包含一个WrapPanel