WPF ListView:包含和不包含图标的项目

WPF ListView:包含和不包含图标的项目,wpf,listview,icons,listviewitem,Wpf,Listview,Icons,Listviewitem,如何在WPF中创建ListView,以便某些ListViewItems具有图标,而另一些没有图标?我想获得如下图所示的列表视图 我从下面的代码开始,但不知道如何将图标仅设置为前4项,而不设置为其他项。如果项目没有图标,则其文本应与图中所示的任何图标左对齐 我还需要给没有图标的项目比有图标的项目稍微高一些 <ListView> <ListView.Items> <ListViewItem Content="Save" />

如何在WPF中创建ListView,以便某些ListViewItems具有图标,而另一些没有图标?我想获得如下图所示的列表视图

我从下面的代码开始,但不知道如何将图标仅设置为前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>

' ???

虽然我同意这看起来像是一个菜单,而不是上面提到的列表视图,但这仍然与MenuItems的使用有关

您应该知道,Wpf中的内容可以通过两种方式设置:一种是直接值,如字符串、StaticResource、Binding(都是字符串的缩写),另一种是声明性值,您可以将元素树描述为内容,如下图所示的iv'e

<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>


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