简单的问题,我有一个带工具栏和列表框的堆栈面板,我希望列表框填充剩余的空间,但它不会。这就是我现在所拥有的。
<Window x:Class="TestClientMainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Testing client" Height="350" Width="525"
DataContext="{StaticResource ResourceKey=TheViewModel}" Background="#FFD4BFBF">
<Grid>
<StackPanel HorizontalAlignment="Stretch" Name="stackPanel1" VerticalAlignment="Stretch">
<ToolBar Height="26" Name="toolBar1" />
<ListBox Name="listBox1" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" MinHeight="{Binding ElementName=stackPanel1, Path=Height}" Height="99" />
</StackPanel>
</Grid>
答案 0 :(得分:3)
尝试使用DockPanel
代替StackPanel
。这样,您可以将LastChildFill
设置为true,并且作为最后一个包含元素的ListBox
将延伸以填充其剩余空间:
<DockPanel LastChildFill="True" HorizontalAlignment="Stretch" Name="dockPanel1" VerticalAlignment="Stretch">
<ToolBar Height="26" Name="toolBar1" />
<ListBox Name="listBox1" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" MinHeight="{Binding ElementName=stackPanel1, Path=Height}" Height="99" />
</DockPanel>
答案 1 :(得分:2)
尝试使用DockPanel
,ToolBar
停靠在顶部或底部,LastChildFill
上的DockPanel
属性设置为true
。
<DockPanel Name="dockPanel1" LastChildFill="True">
<ToolBar Height="26" Name="toolBar1" DockPanel.Dock="Top"/>
<ListBox Name="listBox1" MinHeight="{Binding ElementName=stackPanel1, Path=Height}" Height="99" />
</DockPanel>
答案 2 :(得分:1)
使用DockPanel而不是StackPanel并将LastChildFill属性设置为true。这应该可以解决问题。
答案 3 :(得分:0)
StackPanel不会轻易说服你做你想做的事。
我会改用网格。