[Panel의 역할]
기본적으로 C#을 접하는 대부분의 개발자들이 UI (User Interface)를 구현하기 위해 접한다고 생각합니다. UI를 구성하는 방법론에는 여러 가지가 있습니다만 그중 가장 쉽게 접할 수 있는 두 가지가 Winform과 WPF입니다. (Devops, metro 등 여러 가지 툴이 있으나 이는 추가적으로 원하시면 찾아보시면 될 것 같습니다)
Winform은 짜여진 도구들을 끌어와 쉽게 구현할 수 있는 장점이 있지만 디자이너가 개발자가 개입하기 어려운 환경이므로 커스터마이징이 어렵습니다. 반대로 WPF도 도구를 끌어와 구현할 수 있지만 디자이너를 개발자가 직접 작업을 해야 하므로 확장성이 좋지만 작업성이 안 좋다는 단점이 있습니다. 확장성이 좋다 하는 건 반대로 말하면 개발자가 작업해야 되는 작업량도 늘어난다는 의미이기 때문입니다.
그래서 대부분 처음 접하는게 Winform인데 여기서 알아야 할 가장 중요한 Tool 중 하나가 Panel이라고 생각합니다. Panel은 유동적으로 크기에 반응할 수 있으며 Docking이라는 유용한 기능을 제공하기 때문에 화면 구성에 용이합니다.
UI란 기본적으로 유저가 사용하기 편한 환경을 구성한다는 점에 가장 큰 의의를 두고 작업을 진행하게 되는데, 보기 좋은 떡이 먹기도 좋다고 눈에 잘 들어오는 인터페이스를 구성해야 접근이 쉽기 때문입니다.
[Panel Dock]
Panel에서 제공하는 Dock기능에는 총 6가지가 있습니다. 위치에 따라 Top, Bottom, Left, Right가 존재하고 가운데 Fill, 그리고 None형식이 존재합니다.
말 그대로 해석하면 되는데 이 Dock을 어떻게 활용하느냐에 따라 구조가 바뀌어지니 잘 생각해서 작업을 진행해야 합니다.
구성을 어떻게 하는지에 따라 화면의 보여지는 형식이 달라지므로 프로그램 작업 속도에도 많은 영향을 주고 눈으로 보이는 형식에도 정리되어 있음이 확연하게 보이기 때문에 사용에 편리함이 있습니다.
위 사진처럼 어떻게 구성하는지에 따라 위치가 바뀌어집니다.
왼쪽은 Left Right를 구성 후 Top을 구성하였고, 오른쪽은 Left, Top을 구성 후 Right를 사용하여 구성하였습니다.
이처럼 구성하는 순서에 따라 Dock위치가 달라지므로 항상 순서를 고려하면서 배치해야 합니다.
다만 위와같이 Dock Fill을 활용하는 경우 컨트롤이 겹치는 난감한 상황이 발생할 수 있습니다.
해당 컨트롤이 반드시 가운데로 위치해야하지만 컨트롤 생성 순서가 꼬여있어 겹치는 현상이 발생됩니다.
분명 가운데 Button의 옵션을 Dock Fill로 변경하였으나 머리 속 구조처럼 가운데 딱 들어가는 형태가 아닌 위쪽과 오른쪽 컨트롤과 겹쳐져 보이는 현상이 발생합니다.
해결 방법은 간단합니다. 가운데 버튼을 클릭하고 Ctrl+x / Ctrl+v 하면 됩니다. 컨트롤을 잘라내고 다시 붙여넣음으로 우선순위를 바꿔주는 겁니다. 이 단순한 작업을 진행하면 바로 해결되는 걸 확인할 수 있습니다.
이를 응용하여 원하는 panel을 여러개 구성하고 Panel위에 Panel을 Docking 하며 화면 구성을 원활하게 진행할 수 있습니다.
[Panel Dock 작업 팁]
이렇게 panel위에 여러 컨트롤을 Docking하여 작업하다 보면 Panel 위치를 옮기거나 변경하고 싶을 때가 있습니다. 이럴 때마다 번거롭게 속성창에서 어떤 게 내가 움직이기 원하는 Panel인지 찾을 필요가 없습니다.
물론 Panel을 생성할 때 위처럼 기본 네이밍이 아닌 직접 이름을 부여하고 작업을 진행하면 찾기야 용이하겠지만 나중에 작업하다보면 한 개 화면에 컨트롤이 수백 개가 되는 경우도 있기 때문에 위와 같이 작업하면 작업 효율이 떨어지기 마련입니다.
이럴 때 원하는 Panel을 찾기 위해서는 Panel위에 있는 아무 컨트롤을 클릭하고 Esc버튼을 클릭하면 됩니다. 그럼 해당 컨트롤이 Docking되어있는 Panel이 선택됩니다.