Как появляются VerticalScrollBar в окне изменения размера в ListView? - PullRequest
0 голосов
/ 25 февраля 2020
<UserControl x:Class="PMS.UserControlUsersList"
//...
             xmlns:local="clr-namespace:PMS"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">

    <UserControl.Resources>
        <Style x:Key="ListViewStyle" TargetType="{x:Type GridViewColumnHeader}">
            <Setter Property="HorizontalContentAlignment" Value="Left" />
        </Style>
    </UserControl.Resources>


    <Grid>
        <DockPanel>
                <Expander Grid.Row="0" Header="Filters" Margin="10" Background="White" DockPanel.Dock="Top">
                    <Grid>
                       //...
                    </Grid>
                </Expander>

            <ListView Margin="10" ItemsSource="{Binding FilteredUsers}">
                <ListView.View>
                    <GridView>
                        <GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="First name" DisplayMemberBinding="{Binding FirstName}" Width="Auto"/>
                        <GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Last name"  DisplayMemberBinding="{Binding LastName}" Width="Auto"/>

//other GridViewColum


                    </GridView>
                </ListView.View>
            </ListView>

        </DockPanel>
    </Grid>

</UserControl>

Привет. При изменении размера окна VerticalScrollBar в ListView не появляется. HorizontalScrollBar работает отлично. Как я могу это исправить? Когда я устанавливаю MaxHeight, VerticalScrollBar виден, но это не очень хорошее решение: P

UserControl помещает в StackPanel:

 <StackPanel x:Name="StackPanelMain" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Stretch">
      <!-- my UserControl is here -->
 </StackPanel>

Редактировать: Посмотрите, как это выглядит со мной. UserControl отображается в правом нижнем углу. Слева находится меню и панель сверху. В главном окне я использую WindowStyle = "None".

Ошибка

Это хорошо

Здесь я вставил полный код окна и пользовательского контроля: полный код

1 Ответ

0 голосов
/ 27 февраля 2020

Вы размещаете вложенный ListView внутри StackPanel, что не позволяет ему правильно рассчитать его размер. Вместо этого ваш элемент управления отображается в невидимой области, поэтому вертикальная полоса прокрутки не отображается.

Рассмотрите возможность изменения панели контейнера на Grid.

См. Также: WPF ListView без полосы прокрутки, если установлена ​​высота на авто

...