如何使WPF ListView / ListBox仅显示完整项目? (行为类似于WinForms中的ListBox.IntegralHeight属性)

时间:2019-07-02 07:56:50

标签: c# wpf listview listbox

我如何使ListView仅显示可以将ScrollViewer.ContentCanScroll设置为true才能完全可视化的项目?我希望使我的ListView像WinForms的ListBox.IntegralHeight一样。

我已经尝试过此thread中的解决方案,但我的ListView仍显示“一半”项目。

<Grid Grid.Column="2" 
      x:Name="gridMatchSecion"
      HorizontalAlignment="Stretch"
      VerticalAlignment="Stretch">

    <ListBox ItemsSource="{Binding MatchingObservableCollection}">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <local:HeightLimitedStackPanel IsItemsHost="True" Background="Red"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>

        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.ColumnDefinitions>                         
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <Image Grid.Column="0"                     
                           Source="{Binding Detected, Converter={StaticResource WPFBitmapConverter}}" />

                    <Image Grid.Column="1" 
                           Source="{Binding Matched, Converter={StaticResource WPFBitmapConverter}}" />

                    <Viewbox Grid.Column="2" 
                             Stretch="Uniform" 
                             Margin="10" 
                             HorizontalAlignment="Stretch" 
                             VerticalAlignment="Stretch">
                        <TextBlock HorizontalAlignment="Center"
                                   VerticalAlignment="Center"
                                   Text="{Binding Score, StringFormat=N2}"/>
                    </Viewbox>
                </Grid>
             </DataTemplate>
         </ListBox.ItemTemplate>
    </ListBox>
</Grid>

以上是我在xaml文件中编写的内容,并在上述线程中使用了解决方案。

https://imgur.com/a/JGvj2Su

上面的图像是我得到的结果,红色显示的面板是返回的高度,但是为什么仍然在堆栈面板之外显示项目?

0 个答案:

没有答案