2012-01-31 23 views
0

私のウィンドウはグリッドです.2番目の行はウィンドウを埋めるように伸びます。wpfでXAMLを使ってリストボックスの高さを伸ばす方法は?

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

2番目の行の内容はStackPanelです。私はSOに関する同様の質問の解決策を模倣し、それは私のためには機能しません。リストボックスの高さは2行目を埋めるために伸びません。私のコードに何が問題なのですか?ありがとう。

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

答えて

4

なぜStackPanelが必要ですか?

ちょうど取り除くと、行のサイズが正しく設定されます。

+0

私が書いたように、私はSOで見た解決策としてスタックパネルからリストボックスの高さを導き出す必要がありました。別の方法がありますか? – user763554

+0

@ user763554: 'StackPanel'は、行自身のレイアウトを役に立たなくすることを除いて、何の目的も果たしません。あなたはたぶんそれを間違った方法で取ったのですが、それは非常に異なる問題を解決するための回避策でした。 –

+0

ありがとうございます。あなたは絶対に華麗です。私はそれを取り出し、それは私のために働いた。 – user763554

3

StackPanelを無視し、2番目の行(Grid.Row = "1")を占めるListBoxだけを持ちます。 ListBoxのHorizo​​ntalAlignmentとVerticalAlignmentの値を "Stretch"に設定します。 ListBoxの高さは2番目の行全体を占めます。これはStackPanelの高さにバインドするほうがはるかに簡単です。

関連する問題