2011-04-11 6 views
8

데이터 입력에 사용되는 WPF 양식을 구축 할 때 (을 예를 들어 텍스트 상자와 콤보의 무리 옆에 라벨의 무리) 내가 본 두 가지 방법 :WPF에서 데이터 입력 양식을 만드는 가장 좋은 방법은 무엇입니까?

  • 는, 마스터 그리드를 만들고 두 개의 열로 분할 각 필드에 대해 Height="auto" 행을 추가하고 머리글 및 바닥 글 (및 제출 단추)에 두 행을 추가하고 각 레이블과 텍스트 상자에는 고유 한 행이 있습니다.
  • 다른 방법은 마스터 스택 패널을 생성하고 내부에 label-textbox의 각 쌍에 대한 수평 스택 패널을 작성하는 것입니다.

데이터 입력 양식을 어떻게 디자인합니까? 나는 현재 두 가지 방법으로 찢겨져 있는데, 내가 모르는 대안이 있을지도 모른다.

EDIT : Henk은 내가 가장 잘 정의해야한다고 말했고, 내가 생각하기에 가장 좋은 것은 요구 변경에 따라 필드를 유지, 작성, 정렬 및 추가 또는 제거하는 것이 가장 쉽다는 의미입니다.

그리드가 더 좋은 유일한 기준은 정렬의 용이성입니다.

+3

"가장 좋은 방법은"기준을 요구,이 링크를 여기에 우리의 접근 방식을 설명했다. –

답변

2

확실히 첫 번째 방법!

특히 서로 다른 그룹 상자에서 동일한 정렬을 가질 수 있도록, 특히 SharedSizeGroup을 사용하면 잘 정렬됩니다.

+0

동의합니다. StackPanels는 나중에 멋지게 보이게 만들 때, 또는 어딘가에서 필드의 두 번째 부분이 필요할 때 레이아웃 컨트롤을 거의 제공하지 않습니다. 탭 순서를 유지하고 탭을 배치하는 동안 실제 데이터로 자주 테스트해야합니다. – djdanlib

1

두 가지를 모두 사용했으며 양식이 어떻게 보이는지에 따라 달라집니다. 레이블이 거의없고 동일한 크기의 해당 필드가있는 간단한 레이아웃이있는 경우 첫 번째 방법이 잘 작동합니다. 아주 잘 정렬 된 두 개의 열을 만들 수 있습니다. 그러나 필드가 다양한 높이 및 높이로 구성되어 있고 레이아웃과 더 복잡해지기를 원한다면 하이브리드 방식이 가장 좋을 수 있습니다. 기본 컨트롤의 필드에 레이블을 지정하는 것보다 더 복잡한 작업을 수행하는 경우 상자 밖의 내용을 사용하는 대신 사용자 정의 컨트롤을 만들 수 있습니다. 필드를 수평 및 수직으로 들쭉날쭉하게 배열 할 때 많은 열과 행이있는 그리드가 있어야하기 때문에 그리드 레이아웃을 유지하기가 어려워집니다. 필드와 라벨은 정렬을 올바르게하기 위해 열과 행에 걸쳐 있어야합니다. 이 작업은 가능하지만 양식을 재구성하려는 경우 악몽입니다.

작성한 내용에 대해 첫 번째 방법이 가장 좋음을 알 수 있습니다. 현재 단순하고 미래의 일부 포인트가 복잡해지면 변경하기 쉽습니다. 그러나보다 복잡한 레이아웃을 사용하는 경우에는 순수 그리드 기반 접근 방식이 적합하지 않을 수 있습니다.

관련 문제