列表框/列表视图垂直滚动条不显示(水平是)

时间:2015-10-10 14:10:03

标签: c# wpf listview listbox scrollbar

我在xaml中定义了一个列表框,如下所示:

<Grid.ColumnDefinitions>
  <ColumnDefinition Width="21" />
  <ColumnDefinition Width="*" />
  <ColumnDefinition Width="23" />
  <ColumnDefinition Width="23" />
  <ColumnDefinition Width="23" />
  <ColumnDefinition Width="4" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
  <RowDefinition Height="26" />
  <RowDefinition Height="*" />
  <RowDefinition Height="4" />
</Grid.RowDefinitions>


<ListBox x:Name="AInLb" Margin="8,6,8,8" BorderBrush="Gray" Grid.Row="1" Grid.ColumnSpan="6" Grid.RowSpan="2" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
  <ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
      <Setter Property="IsSelected" Value="{Binding Content.IsSelected, Mode=TwoWay, RelativeSource={RelativeSource Self}}"/> 
      <Setter Property="Template"> 
        <Setter.Value> 
          <ControlTemplate TargetType="ListBoxItem"> 
            <ContentPresenter/> 
          </ControlTemplate>
        </Setter.Value> 
      </Setter>
    </Style>
  </ListBox.ItemContainerStyle>
  <ListView x:Name="AInfoLv" FontFamily="Khmer UI" Background="White" BorderBrush="{x:Null}" BorderThickness="0" Foreground="Black">
    <ListView.View>
      <GridView>
        <GridViewColumn x:Name="LabelColumn" Header="Label" Width="110" DisplayMemberBinding="{Binding Path=Label}" />
        <GridViewColumn x:Name="ValueColumn" Header="Value" Width="140" DisplayMemberBinding="{Binding Path=Value}" />
      </GridView>
    </ListView.View>
    <ListView.ItemContainerStyle>
      <Style TargetType="{x:Type ListViewItem}">
        <Setter Property="Template">
          <Setter.Value> 
            <ControlTemplate TargetType="{x:Type ListViewItem}">
              <Border BorderBrush="Transparent" BorderThickness="1" Background="{TemplateBinding Background}">
                <GridViewRowPresenter/> 
              </Border>
            </ControlTemplate> 
          </Setter.Value>
        </Setter> 
        <Style.Triggers>
          <DataTrigger Binding="{Binding Path=Label}" Value="Login"> 
            <Setter Property="FontWeight" Value="Bold"/> 
          </DataTrigger> 
          <DataTrigger Binding="{Binding Path=Label}" Value="Skill(s)">
            <Setter Property="FontWeight" Value="Bold"/> 
          </DataTrigger>
        </Style.Triggers>
      </Style>
    </ListView.ItemContainerStyle>
  </ListView>
</ListBox>

列表框和列表视图的高度和宽度都设置为自动。当内容超出列表框的高度和宽度时,水平滚动条工作正常,但垂直滚动条不显示。

enter image description here

更新 包括@Dom的建议。

enter image description here

更新2:Height设置listbox限制后。

enter image description here

2 个答案:

答案 0 :(得分:1)

通过为ScrollViewer.CanContentScroll="False"设置ListBox来解决问题。 Reference

答案 1 :(得分:0)

ListView支持ScrollViewer。您需要启用它:

<ListView ScrollViewer.CanContentScroll="True" 
 Scro