2011-03-09 119 views
1

簡單的問題,我有一個工具欄和列表框的堆棧面板,我希望列表框填充剩餘的空間,但它不會。這是我目前所擁有的。wpf堆棧面板

<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> 

回答

3

嘗試使用DockPanel而不是StackPanel。你可以設置LastChildFill真和你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> 
+0

你知道哦,我現在該怎麼傻的感覺?我期待StackPanel像DockPanel一樣工作。謝謝你們。 – Ian 2011-03-09 14:17:11

2

嘗試使用DockPanel,與停靠在頂部或底部和LastChildFill屬性上DockPanel集到trueToolBar

<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> 
0

一個StackPanel不會輕易相信做你想做的。

我會使用網格來代替。

1

使用DockPanel而不是StackPanel並將LastChildFill屬性設置爲true。這應該夠了吧。