Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF列表视图显示_Wpf_Listview_Layout_Listviewitem - Fatal编程技术网

WPF列表视图显示

WPF列表视图显示,wpf,listview,layout,listviewitem,Wpf,Listview,Layout,Listviewitem,我试图通过矩形框显示Listview项,这是我使用ControlTemplate实现的 我的问题是如何在窗口上组织矩形框。 我想在一行上显示尽可能多的内容,这取决于窗口的宽度,当一行被填满时,开始新的一行,依此类推。 每次调整大小后,将根据窗口的宽度更新组织: 这可能会给我一个更好的想法,我想要的,你看到每个矩形框标记1,2。。。窗口上的组织根据其宽度而变化 以下是我的主窗口xaml中的当前代码: <ListView Name="PlayerList" ItemsSource="{Bind

我试图通过矩形框显示Listview项,这是我使用ControlTemplate实现的

我的问题是如何在窗口上组织矩形框。 我想在一行上显示尽可能多的内容,这取决于窗口的宽度,当一行被填满时,开始新的一行,依此类推。 每次调整大小后,将根据窗口的宽度更新组织:

这可能会给我一个更好的想法,我想要的,你看到每个矩形框标记1,2。。。窗口上的组织根据其宽度而变化

以下是我的主窗口xaml中的当前代码:

<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谢谢,就这样