2012-01-31 52 views
0

我的窗口是一個網格,第二排延伸到填滿窗口。如何在wpf中使用XAML來擴展列表框高度?

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

第2行的內容是一個StackPanel。我模仿SO的類似問題的解決方案,它不適合我:列表框的高度不伸展填充第二行。我的代碼有什麼問題?謝謝。

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

回答

4

爲什麼你需要StackPanel那裏?

只要把它拿出來,行的大小應該正確。

+0

正如我寫的,我需要從堆棧面板中導出列表框的高度,作爲我在SO上看到的解決方案。有不同的方法嗎? – user763554 2012-01-31 00:09:47

+0

@ user763554:'StackPanel'除了使行自己的佈局無用外,沒有任何用處,有人建議這樣做嗎?你可能採取了錯誤的方式,這是解決一個非常不同的問題的解決方法。 – 2012-01-31 00:12:10

+0

謝謝。你絕對精彩。我拿出來,它爲我工作。 – user763554 2012-01-31 00:13:53

3

忽略StackPanel,只是有一個ListBox佔用第二行(Grid.Row =「1」)。將ListBox的Horizo​​ntalAlignment和VerticalAlignment的值設置爲「Stretch」。列表框的高度將佔據整個第二行。這綁定到StackPanel的高度要容易得多。