具有MaxHeight定义的网格行中的列表框:禁用滚动条

时间:2017-11-15 08:18:32

标签: wpf listbox grid scrollbar

我有以下网格:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="300"></ColumnDefinition>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="20"></RowDefinition>
        <RowDefinition Height="60"></RowDefinition>
        <RowDefinition Height="*" MaxHeight="200"></RowDefinition>
        <RowDefinition Height="20"></RowDefinition>
        <RowDefinition Height="20"></RowDefinition>
    </Grid.RowDefinitions>
    ...
    <ListBox x:Name="lstAbweichungen" Grid.Row="2" Grid.Column="1" FontSize="14"
             ItemsSource="{Binding MyList}" ScrollViewer.VerticalScrollBarVisibility ="Visible" />
    ...
</Grid>

ListBox中的滚动条可见但未启用,列表框会延伸到不可见区域。我希望ListBox不会超出200并且滚动条工作。你看到了什么问题吗?谢谢,安妮

2 个答案:

答案 0 :(得分:0)

使用您提供的代码,我无法重现该问题。

但是,我发现如果在Stackpanel,ScrollViewer或Listbox中放置任何控件(ListBox,ScrollViewer,Grid),控件的行为将完全按照您的描述。

您的主网格是否存在于另一个控件中?也许用户控件存在于容器中,例如我提到的容器中?

答案 1 :(得分:0)

使用ListBox垂直滚动条也遇到了这种奇怪的行为。也许是个bug。尝试将MaxHeight移动到ListBox。