2010-03-15 6 views
5

WPF 응용 프로그램의 다양한 예제를 보았습니다. 거의 모든 항목에 대해 Grid 컨트롤의 사용을 보았습니다. 단 하나의 열이나 행만있는 간단한 경우조차도 마찬가지입니다.WPF : 왜 그리드 컨트롤에 대한 모든 사랑?

또한 WPF 템플릿은 빈 눈금으로 시작됩니다. StackPanel 또는 DockPanel를 사용하여 나를 위해

은 덜 장황하고

왜 더 나은 Grid 또는 내가 무엇을 놓치고 (나중에 행을 추가하고 다른 모든 행에 하나를 추가 할 필요 생각) 유지 보수를 위해 더 낫다 ?

답변

2

그리드가 기본 요소가되는 이유 중 일부는 (다소) 디자이너 친화적 인 것이라고 생각합니다.

Grid를 사용하면 자유 그리기가있는 디자이너가 Canvas와 동일한 유연성을 가질 수 있지만 그리드 (자동 레이아웃 기능)가있는 단일 그리드 "셀"내에 여러 요소를 갖는 것에 대한 제한이 없습니다. StackPanel 및 DockPanel과 같은 더 멋진 레이아웃 컨트롤)이 포함되어 있습니다.

1

누락 된 항목이 없습니다. 내 응용 프로그램에는 상당히 많은 그리드가 있지만 반드시 최상위 요소는 아니며 명확하게 설명하지 않아도됩니다.

많은 사람들이 초기 그리드를 제거 할 수 있다는 사실을 모르고 대신 자신의 컨트롤을 그리드에 넣을 수 있습니다.

1

나는 더 정교한 창문의 경우, 다른 창들과 상당히 독립적 인 (동작 및 크기 현명한) 기능 영역으로 나누는 것이 더 쉽다는 것을 발견했다. 그리드를 사용하면 해당 영역이 단일 패널에 공존 할 수 있으며 다른 컨트롤이 어느 정도까지 (어느 정도까지) 관계없이 위치 할 수 있습니다.

예를 들어 프로젝트에서 나는 working on right now입니다. 배송 관리자가 될 창이 있습니다. 세 가지 목록보기 (배송, 패키지, 항목)가 필요합니다. 두 개의 열이있는 그리드 컨트롤이 있습니다. 하나는 Packages 목록과 그리드 스플리터가 있고 다른 하나는 다른 두 목록과 그리드 스플리터가있는 중첩 된 그리드가 있습니다.

많은 디자이너들이이 같은 영역으로 창을 나눠 보았고 간접적으로 살고있는 신중한 "셀"이 없기 때문에 그리드 이외의 다른 작업으로도 작업을 수행 할 수 있습니다. 창문은이 디자인을 채택하고 있으므로 회의가 있었고 기본 컨테이너 패널이 무엇인지 물어 보았습니다. 그리드는 그 사실을 기반으로 한 선택이었습니다.

코리

3

두 단어 : 스타 사이징. Grid은 명시 적으로 컨테이너의 크기를 제공하지 않고 내용을 포함하는 공간에 내용의 크기를 조절할 수 있습니다. 패널 컨트롤은 그렇지 않습니다.

+1

동의하지만, 가끔씩 만 필요할 때가 있습니다. 일반적으로 DockPanel을 사용하여 동일한 효과를 얻을 수 있습니다. –

+0

다소 비슷한 효과가 있습니다. 그러나 창을 반으로 나누고 싶다면 DockPanel을 사용하여 실제로 그렇게 할 수는 없습니다. 부모의 ActualSize 속성에 바인딩하는 등의 일을하지 않아도됩니다. –

관련 문제