我有一个 ListView,它的 ItemsSource 是字符串的集合。正如您所料,字符串的集合具有不同的长度。我的目标是在 listView 中水平显示这些字符串。
有很多水平使用 ListView 的例子,所以这部分很简单。我通过将 Horizontal StackPanel 指定为 ItemsPanelTemplate 来实现...
我的 ListView xaml:
<ListView x:Name="myListView">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button Click="Button_Click" FontSize="10" Foreground="Salmon" BorderThickness="0" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Content="x" Background="Transparent" />
<Label FontSize="10" Foreground="SteelBlue" Content="{Binding}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
我要显示的内容:
[This is a string] [This is also a string] [abc] [Look at me]
我的 xaml 显示的内容:
[This i] [This i] [abc ] [Look a]
我可以给我的 GridviewColumn 一个设定的宽度,并得到这样的东西:
[This is a string ][This is also a string] [abc ][Look at me ]
我还可以将列宽设置为自动,这将使其与最宽的项目一样大......但我真的很希望它能够节省空间并将它们并排放置在它们的真实宽度上。
我做了很多研究但没有成功,有什么想法吗?