WPF:带图标视图的列表视图?

10

我无法弄清楚如何在WPF ListView中实现一个Icon View(类似于Windows资源管理器的视图)。在谷歌上搜索,我只找到了关于实现GridView的信息,但没有关于Icon View的线索。我不是在谈论System.Windows.Form.ListView,而是System.Windows.Controls.ListView。

也许有其他控件可以做到这一点?我没有找到任何相关的东西?

我只找到一些人用listbox手动构建了icon view,并更改了paneltemplate和icontemplate。我不相信这是唯一的方法。

有什么线索吗?

先感谢您。

4个回答

10

编辑:看起来我误解了你对资源管理器视图的意思……我的设定是详细信息……; ) 我将保留我的回答,以防其他人犯同样的错误...


在WPF中不存在“图标视图”,您需要自己实现,但不必从头开始。

您可以使用ListView与GridView结合,为包含图标的列至少设置一个CellTemplate。

以下是类似于Windows资源管理器视图的大致概述:

<ListView>
    <ListView.Resources>
        <DataTemplate x:Key="IconTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <Image Grid.Column="0"/>
                <TextBlock Grid.Column="1" Text="{Binding Name}"/>
            </Grid>
        </DataTemplate>
    </ListView.Resources>            
    <ListView.View>     
        <GridView>
            <GridViewColumn CellTemplate="{StaticResource IconTemplate}" Header="Name"/>
            <GridViewColumn DisplayMemberBinding="{Binding Size}" Header="Size"/>
            <GridViewColumn DisplayMemberBinding="{Binding Type}" Header="Type"/>                    
        </GridView>
    </ListView.View>
</ListView>

8

仅凭我个人的经验,你尝试过这个方法了吗?

<Style TargetType="ListBox">
  <Setter Property="ItemsPanel">
    <Setter.Value>
      <ItemsPanelTemplate>
        <UniformGrid/>
      </ItemsPanelTemplate>
    </Setter.Value>
  </Setter>
</Style>

8
与Tanveer Badar的答案相同,但使用WrapPanel而不是UniformGrid。在您的listbox中设置以下内容:
ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
ScrollViewer.VerticalScrollBarVisibility="Auto"       

强制WrapPanel换行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接