2012-03-01 9 views
0

私は作業中のC#でWPFプロジェクトを持っています。私はそれに3つのコントロールを含むTabPageを持っている:2つのテキストボックスとdatagridview。私は3つすべてを親のサイズ(それが置かれているタブページ)に基づいてページに収めたいと思っています。基本的なドック/アンカースタイリング

1つのテキストボックスは、右側(他のテキストボックスで終わる)にあり、最後のテキストボックスはフルボトムに沿っている必要があります。

GRID |

のTextBox1

--- TEXTBOXは---私はドッキングとアンカーリングのスタイルで実験されていますが、私は、ページ上の複数の要素を適切にそれらを使用するかどうかはわかりません。

現在、私はTextbox1 Dock.Right、Textbox2 Dock.Bottomを持っています。私は残っているDataGridViewが残っているスペースを埋めるようにしたい。ただし、Dock.Fillを使用すると、親フォーム全体が塗りつぶされ、テキストボックスがオーバーラップします。

私はこれについて正しく考えていますか?私はDockPanelの "LastChildFill"プロパティを持っているものを見ましたが、それは私には当てはまらないようです(間違っているかもしれませんか?)。前もって感謝します!

答えて

3

Gridsをそのまま使用してください。

1つのGridは2つの行を含み、最上列は2つの列を有するもう1つのGridを含む。

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition /> <!-- Fill All --> 
     <RowDefinition Height="Auto" /> <!-- Fit to content --> 
    </Grid.RowDefinitions> 
    <Grid Grid.Row="0"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition /> 
      <ColumnDefinition Width="Auto" /> 
     </Grid.ColumnDefinitions> 
     <DataGrid Grid.Column="0" /> 
     <TextBox Grid.Column="1" /> 
    </Grid> 
    <TextBox Grid.Row="1" /> 
</Grid> 
+1

はなぜちょうど1つの2x2のグリッドを使用しないで塗りつぶしましたか? –

+0

それは当然ながら実行可能な選択肢でもあります。 (私は通常、 'ColumnSpan'などを使用しないでください) –

+0

それは単なる個人的な好みの問題だと思います。グリッドの1つのセクションに多くの小さな行/列が含まれていない限り、サブグリッドは使用しません。 –

1

あなたは近くにいるようです。 DockPanelを使用すると、次のようにコントロールにDockPanel.Dockを設定します。

のTextBox1:右

TextBox2を:ボトム

のDataGridView: