2012-03-01 3 views
0

저는 C#으로 WPF 프로젝트를 진행하고 있습니다. 3 개의 컨트롤이 포함 된 TabPage가 있습니다 : 2 개의 텍스트 상자와 DataGridview. 나는 부모의 크기 (그것이 위치한 탭 페이지)에 기초하여 세 가지 모두를 페이지에 맞추기를 원합니다.기본 도크/앵커 스타일링

하나의 텍스트 상자는 오른쪽 (다른 텍스트 상자에서 끝남)과 마지막 텍스트 상자가 전체 아래쪽에 있어야합니다.

GRID |

TextBox1에

--- 텍스트 상자 --- 나는 도킹 및 앵커 스타일을 실험되었지만 나는 페이지에 여러 요소를 적절하게 사용하는 방법을 모르겠어요.

현재 Textbox1 Dock.Right, Textbox2 Dock이 있습니다. 아래쪽. 남은 DataGridView가 남아있는 공간을 채우고 싶습니다. 그러나 Dock.Fill을 사용하면 전체 부모 폼이 채워지고 텍스트 상자가 겹칩니다.

나는 이것을 제대로 생각하고 있습니까? "LastChildFill"속성을 가진 DockPanel에서 무언가를 보았지만 나에게 적용되지 않는 것 같습니다 (잘못 될 수 있습니까?). 미리 감사드립니다!

답변

3

그냥 Grids을 사용하십시오.

하나는 Grid이고 두 행은 맨 위 행에 두 개의 열이있는 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

가 왜 그냥 한 2 × 2 그리드를 사용 채우기를? –

+0

그건 물론 실행 가능한 옵션이 될 것입니다. (나는 보통'ColumnSpan'과 같은 것을 사용하지 않는다.) –

+0

그것은 단지 개인적인 취향의 문제라고 생각한다. 그렇게하지 않는 한 그리드의 한 섹션에 많은 작은 행/열이 포함되지 않는 한 하위 격자를 사용하지 않습니다. –

1

가까운 것으로 보입니다. 사용하십시오 DockPanel 다음과 같이 컨트롤에 DockPanel.Dock을 설정

TextBox1에 : 오른쪽

TextBox2를 : 바닥

DataGridView에 :