WPF列表视图显示
我试图通过矩形框显示Listview项,这是我使用ControlTemplate实现的 我的问题是如何在窗口上组织矩形框。 我想在一行上显示尽可能多的内容,这取决于窗口的宽度,当一行被填满时,开始新的一行,依此类推。 每次调整大小后,将根据窗口的宽度更新组织: 这可能会给我一个更好的想法,我想要的,你看到每个矩形框标记1,2。。。窗口上的组织根据其宽度而变化 以下是我的主窗口xaml中的当前代码:WPF列表视图显示,wpf,listview,layout,listviewitem,Wpf,Listview,Layout,Listviewitem,我试图通过矩形框显示Listview项,这是我使用ControlTemplate实现的 我的问题是如何在窗口上组织矩形框。 我想在一行上显示尽可能多的内容,这取决于窗口的宽度,当一行被填满时,开始新的一行,依此类推。 每次调整大小后,将根据窗口的宽度更新组织: 这可能会给我一个更好的想法,我想要的,你看到每个矩形框标记1,2。。。窗口上的组织根据其宽度而变化 以下是我的主窗口xaml中的当前代码: <ListView Name="PlayerList" ItemsSource="{Bind
<ListView Name="PlayerList" ItemsSource="{Binding Players}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
应用了以下样式:
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<GroupBox Header="{Binding Name}" Width="250" Height="125" Name="Disp" HorizontalAlignment="Left">
<GroupBox.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding}" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5,0,0,0" TextAlignment="Right"></TextBlock>
</StackPanel>
</DataTemplate>
</GroupBox.HeaderTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Char}"/>
<TextBlock Text="{Binding Item}"/>
</StackPanel>
</GroupBox>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
但到目前为止,UniformGrid只是一个失败的尝试,我一直在四处寻找,但没有真正找到解决方案。希望是因为我太笨了,错过了一些明显的东西
谢谢你的帮助。谢谢你的点评 WrapPanel确实是正确的方式,只是没有想到它:p 我只需要添加以下属性:
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
为了避免将所有项目堆叠在同一行上,请访问我的listview。我不太了解ListViewItems的ControlTemplate。您能否提供数据项类型的一些详细信息,以及如何将其可视化?否则,UniformGrid似乎是正确的方法,它应该按照您使用它的方式工作。WrapPanel会工作吗?@Clemens UniformGrid有一些布局规范不符合我的要求,根据项目的编号等不同,它们之间的间距也不同。对于ControlTemplate,不确定您想要看到什么,我只是在实现矩形框时重载了样式,我这样做是为了删除突出显示effect@Chris谢谢,就这样