如何在wpf中使用XAML拉伸列表框高度?

时间:2012-01-31 00:02:17

标签: wpf xaml listbox

我的窗口是一个网格,第二行伸展以填充窗口。

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

第二行的内容是StackPanel。我在SO上模仿了类似问题的解决方案,它对我不起作用:列表框的高度不会延伸到第二行。我的代码出了什么问题?感谢。

    <StackPanel x:Name="lbStackPanel" Grid.Row="1" >
        <ListBox Name="listBox1" Height="{Binding ElementName=lbStackPanel, Path=ActualHeight}">
        ...
        </ListBox>
    </StackPanel>

2 个答案:

答案 0 :(得分:4)

为什么你需要StackPanel

把它拿出来,行应该正确。

答案 1 :(得分:4)

忽略StackPanel,只有一个占据第二行的ListBox(Grid.Row =“1”)。将ListBox的Horizo​​ntalAlignment和VerticalAlignment的值设置为“Stretch”。然后ListBox的高度将占据整个第二行。这比绑定StackPanel的高度要容易得多。