Wpf 以统一大小垂直布局ListView项

Wpf 以统一大小垂直布局ListView项,wpf,listview,layout,Wpf,Listview,Layout,我正在WPF中设计一个用户控件来显示多声道音频信号。通常,我会打开一个包含音轨的文件,主窗口的内容将由我的UserControl填充,而UserControl又会为文件中的每个音轨包含一个项目。每个项目都可以拉伸以占据控件的整个宽度,并设置其高度以使项目均匀分布 对于包含4项(灰色)的文件,这或多或少是所需的结果。请注意,每个项目占用可用高度的四分之一,并且所有项目都具有相同的宽度: 目前,我有以下代码(XAML): 而TrackView包含: <Border BorderThick

我正在WPF中设计一个用户控件来显示多声道音频信号。通常,我会打开一个包含音轨的文件,主窗口的内容将由我的UserControl填充,而UserControl又会为文件中的每个音轨包含一个项目。每个项目都可以拉伸以占据控件的整个宽度,并设置其高度以使项目均匀分布

对于包含4项(灰色)的文件,这或多或少是所需的结果。请注意,每个项目占用可用高度的四分之一,并且所有项目都具有相同的宽度:

目前,我有以下代码(XAML):


而TrackView包含:

<Border BorderThickness="1" BorderBrush="Black">
    <Grid x:Name="LayoutRoot" Background="#FFFFDCF2">
        <Polyline Stretch="Fill" Points="{Binding Pontos}" Fill="#FFD60D0D"/>
    </Grid>
</Border>

问题是:ListView中的每个ListViewItem都以不规则的比例渲染。所有内容都被约束为左侧的几个像素,并且高度不分布(相反,它似乎是以绝对单位渲染的,这是不需要的)


我很乐意使用任何其他ItemsControl,但我更愿意使用现成的ItemsControl,而不是自己子类化ItemsControl来构建它。

这将为您提供一个统一的网格作为项目宿主,因此它们都应该均匀分布高度

        <ListView>
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid Columns="1" IsItemsHost="True"/>
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
        </ListView>

编辑:还要去掉ListView上的高度和宽度绑定,并将水平/垂直对齐和内容对齐设置为拉伸

        <ListView>
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid Columns="1" IsItemsHost="True"/>
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
        </ListView>