【问题标题】:WPF ListView: items with and without iconWPF ListView:带有和不带图标的项目
【发布时间】:2013-11-24 20:50:44
【问题描述】:

如何在 WPF 中创建一个 ListView,让一些 ListViewItems 有图标而一些没有?我想实现如下图所示的 ListView。

我从以下代码开始,但不知道如何将图标设置为仅前 4 项而不是其他项。如果项目没有图标,则其文本应与图中所示的任何图标左对齐。

我还需要让没有图标的项目比有图标的项目略高。

<ListView>
      <ListView.Items>
            <ListViewItem Content="Save" />
            <ListViewItem Content="Save As" />
            <ListViewItem Content="Open" />
            <ListViewItem Content="Close" />
            <ListViewItem Content="Info" />
            <ListViewItem Content="Recent" />
            <ListViewItem Content="New" />
      </ListView.Items>
       <ListView.View>
            <GridView>
                  <GridViewColumn>
                        <GridViewColumn.CellTemplate>
                              <DataTemplate>
                                 ' ???
                               </DataTemplate>
                        </GridViewColumn.CellTemplate>
                   </GridViewColumn>
             </GridView>
       </ListView.View>            
 </ListView>

【问题讨论】:

  • MenuItem 可能是更好的选择,因为它支持图标和文本。而那些你不想要图像的只是不要填充图标字段
  • 是的,MenuItem 在这里可能是一个更自然的选择。

标签: wpf listview icons listviewitem


【解决方案1】:

虽然我同意这看起来像一个 Menu 而不是上面提到的 ListView ,但这仍然与 MenuItems 的使用相关。

您应该知道,Wpf 中的 Content 可以通过两种方式设置,一个 Direct 值,例如 String 、 StaticResource 、 Binding (都是字符串的缩写)和一个声明性值,您可以将元素树描述为您的内容,如下所示。

<ListView>
    <ListView.Items>
        <ListViewItem>
            <ListViewItem.Content>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="2*"/>
                    </Grid.ColumnDefinitions>

                    <Image Source="SomeSource.png" />
                    <TextBlock Text="Save" Grid.Column="1" />

                </Grid>
            </ListViewItem.Content>
        </ListViewItem>
        <ListViewItem Content="Save As" />
        <ListViewItem Content="Open" />
        <ListViewItem Content="Close" />
        <ListViewItem Content="Info" />
        <ListViewItem Content="Recent" />
        <ListViewItem Content="New" />
    </ListView.Items>

</ListView>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多