代码之家  ›  专栏  ›  技术社区  ›  David Brunelle

如何使WPF ListView项水平和垂直重复?

  •  2
  • David Brunelle  · 技术社区  · 15 年前

    我有一个 ListView 我想水平显示东西。这很好,但是现在我需要像在Windows资源管理器类型中那样显示它们。

    例如:

    A   B   C
    
    D   E   F
    
    G   H   I
    

    A   B
    
    C   D
    
    E   F
    
    G   H
    
    I
    

    有可能在 列表视图 ?

    2 回复  |  直到 13 年前
        1
  •  5
  •   Pieter Breed    15 年前

    如果你想要所有的东西都一样大,我就买一个 UniformGrid . 它是那些被忽视的控制之一,在这种情况下可能非常有用。

    这就是我如何制作快速而脏的工具栏:

    <ItemsControl ItemsSource="{Binding}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button Command="{Binding}"
                        ToolTip="{Binding Tooltip}">
                    <StackPanel Orientation="Vertical">
                        <Image Height="16"
                               Width="16"
                               RenderOptions.BitmapScalingMode="NearestNeighbor"
                               Source="{Binding Image}"
                               HorizontalAlignment="Center" />
                    </StackPanel>
                </Button>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Rows="1" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
    
        2
  •  3
  •   Rich    15 年前

    听起来你在找包装纸。我不认为它适用于ListView,但是如果您希望一个通用项容器使用Wrappanel作为它的布局,您可以使用itemsControl来完成此操作,并用您想要的任何元素填充它。如下所示:

    <ItemsControl>
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.Items>
            <TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
            <TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
            <TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
            <TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
            <TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
            <TextBlock Margin="20" Padding="20" Text="Blah" Background="#999" />
        </ItemsControl.Items>
    </ItemsControl>