Member 12969975 Ответов: 1

Полоса прокрутки не отображается в ListView


У меня есть следующий код XAML для моего элемента управления ListView:

<Grid x:Name="gSearch"  Grid.Row="1" Margin="0,45,871,0" >
                        <ListView x:Name="lVsearch" Height="472" Margin="15,7,5,17" SelectionMode="Single" 
                                      
                                      HorizontalContentAlignment="Stretch" ScrollViewer.CanContentScroll="True" >
                            <ListView.Template>
                                <ControlTemplate>
                                    <Border CornerRadius="3" BorderThickness="1" BorderBrush="LightGray" Background="{TemplateBinding Background}">
                                        <ItemsPresenter></ItemsPresenter>
                                    </Border>
                                </ControlTemplate>
                            </ListView.Template>
                            <ListView.ItemContainerStyle>
                                <Style TargetType="{x:Type ListViewItem}">
                                    <Setter Property="Template">
                                        <Setter.Value>
                                            <ControlTemplate TargetType="{x:Type 
                                                ListViewItem}">
                                                <Border x:Name="Border" 
                                                BorderBrush ="LightGray" 
                                                 BorderThickness="0 0 0 1">
                                                    <ContentPresenter />
                                                </Border>
                                                <ControlTemplate.Triggers>
                                                    <Trigger Property="IsMouseOver" 
                                                     Value="True">
                                                        <Setter 
                                                        Property="Background" 
                                                        TargetName="Border" 
                                                        Value="#FF5DD4F2">
                                                    </Setter>
                                                    </Trigger>
                                                    <Trigger Property="IsSelected" 
                                                     Value="True">
                                                        <Setter  
                                                     Property="Background" 
                                                     TargetName="Border" Value="#FF3266A0"></Setter>
                                                        <Setter Property="Foreground" Value="White"></Setter>
                                                    </Trigger>
                                                </ControlTemplate.Triggers>
                                            </ControlTemplate>
                                        </Setter.Value>
                                    </Setter>
                                </Style>
                            </ListView.ItemContainerStyle>
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <WrapPanel>
                                        <TextBlock Text="{Binding Bez}" />
                                        <TextBlock Text=" (" />
                                        <TextBlock Text="{Binding ArtNr}" />
                                        <TextBlock Text=" | " />
                                        <TextBlock Text="{Binding SlNr}"/>
                                        <TextBlock Text=")" />
                                    </WrapPanel>
                                </DataTemplate>
                            </ListView.ItemTemplate>
                        </ListView>
                    </Grid>


я не знаю, почему ListView не показывает полосы прокрутки?

Что я уже пробовал:

Объект ScrollViewer.CanContentScroll = true

Richard MacCutchan

Содержит ли список достаточно элементов, чтобы требовать полосу прокрутки?

Member 12969975

конечно, он просто идет дальше в списке, но без полос прокрутки :(

George Swan

Попробовать это. Оберните ScrollViewer вокруг ListView. Установка полей и высота внутри объекта ScrollViewer и снять маржу и высота ссылки из элемента управления ListView, а также объект ScrollViewer.CanContentScroll=ссылка" True".

1 Ответов

Рейтинг:
9

Richard Deeming

Вам нужен ScrollViewer в вашем контрольном шаблоне:

<ListView.Template>
    <ControlTemplate>
        <Border CornerRadius="3" BorderThickness="1" BorderBrush="LightGray" Background="{TemplateBinding Background}">
            <ScrollViewer Padding="{TemplateBinding Padding}" Focusable="False">
                <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
            </ScrollViewer>
        </Border>
    </ControlTemplate>
</ListView.Template>