Как сделать, чтобы WPF ListView / ListBox показывал только законченные элементы? (Ведут себя как свойство ListBox.IntegralHeight в WinForms) - PullRequest
0 голосов
/ 02 июля 2019

Как сделать так, чтобы в моем ListView отображались только элементы, которые можно полностью визуализировать, если для ScrollViewer.ContentCanScroll задано значение true?Я хочу, чтобы мой ListView вел себя как ListBox.IntegralHeight WinForms.

Я пробовал решение в этой теме , но мой 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

вышеупомянутое изображение - результат, который я получил, панель, показанная красным, - возвращенная высота, но почему все еще элемент отображается за пределами панели стека?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...