2012-04-29 17 views
0

グリッド内にリストボックスがあり、リストボックスの下に画像があります。メインウィンドウが水平方向に小さくなると、画像はその比率を維持しますが、下部のグリッドにドッキングされてサイズが自動的に縮小されます。コントロールAのボトムを可変サイズのコントロールの位置にドッキングする方法B

これは、リストボックスの下部を画像の位置と同じにすることは可能ですか?

ような何か:

On image_resize 
{ 
    listbox.Height = image.Location; 
} 
+0

私はそれがタンブルウィードだと思います。 –

+0

「画像の場所と同じ」という意味がわかりません。リストボックスの幅を画像の幅で拡大するにはどうしたらいいですか? –

+0

私は高さについて話しています。実際には、リストボックスの下にすべての空き領域が必要です。おそらくhttp://stackoverflow.com/questions/36108/how-to-get-controls-in-wpf-to-fill-available-spaceに似ています。しかし、男は2ページの長い答えを受け取る。オン/オフスイッチがあるはずです。私が入力したもの(listbox.height = image.Location)は、それがWinFormアプリケーションであった場合、私が正確に行うものです。そしてそれは直接働くでしょう。 listbox.heightをimage.Locationにデータバインドすると、WindowStateを変更するとサイズが変更されます(フルスクリーンに切り替えるとその逆) –

答えて

2

あなたは少なくとも二つのソリューションを持っている残りのスペースを埋めるために展開してリストボックスを探しているなら。 DockPanelで

:画像が表示される最初の要素ですが、それは、リストボックスの下にレイアウトされて

<DockPanel LastChildFill="True"> 
    <Image Source="..." Dock.DockPanel="Bottom"/> 
    <ListBox ItemsSource="{...}" DockPanel.Dock="Top"/> 
</DockPanel> 

は、それが一番下にドッキングされています。 ListBoxはDockPanelの最後の要素なので、残りの領域を埋めるために伸びます。 DockPanelの詳細については、this linkを参照してください。グリッドに

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

    <ListBox Grid.Row="0"/> 

    <Image Grid.Row="1"/> 
</Grid> 

あなたがその内容に合わせて行のいずれかの自動サイズ自体は、それが残りのスペースを埋めるために、それ自体のサイズを変更することができますか、それは特定の高さを与えることができるように要求することができますグリッドに。 *という表記は、残りのスペースを埋めることを示します。グリッドレイアウトの詳細についてはthis linkを、クイックチュートリアルの場合はthis linkを参照してください。

+0

ドックパネルソリューションを選択しました。ありがとう! –

関連する問題