본문 바로가기
스완남 - IT 이야기

[C# wpf]스완남~~ 코딩,어떻게 해요??

by 골디오션스토리 2019. 4. 21.
728x90
반응형

스완남~ 코딩어떻게 해요??  c# wpf

안녕하세요 코딩 알려 주는 남자 스완남입니다

스완남의 c# wpf편 오늘은 wpf의 레이아웃에 대해서 알아보겠습니다.

Wpf 레이아웃

WPF는 레이아웃을 제어하기 위한 강력하고 유연한 도구 모음을 제공합니다. 사용자 인터페이스. 이 도구를 사용하면 응용 프로그램에서 명확하고 논리적인 방법으로 제제시할 수있습니다.

 개발하시거나 디자인하시는 분들에게 사용자 인터페이스 레이아웃, 모든 작업을 수행 할수있도록 합니다. 좋은 레이아웃 시스템은 크기 조정, 적용등 일반적인 시나리오를 자동적으로 동기화 할 수 있어야 합니다. 또한, 필요에 따라 수동 개입이 가능해야 합니다. 오늘은 WPF의 레이아웃 시스템이 어떠한 기능을 가지고 어떻게 구현되는지 알아보겠습니다.

레이아웃의 기본사항

WPF는 일련의 패널-특정 용도의 사용자 인터페이스 요소를 제공합니다. 패널들이 포함하는 요소들을 나열해 보면 각각의 개별 패널 유형은 레이아웃 매커니즘을 쉽게 이해 할수 있습니다. 모든 wpf요소와 마찬가지로 레이아웃 객체 유형은 매우 간단합니다. 강력한 레이아웃 시스템은 결합 할수 있는 유연한 방법 또한 레이아웃 요소 유형에 대해 설명합니다. 어떤 패널을 사용하든 동일한 기본 규칙이 항상 적용됩니다. 대부분의 패널은 또한 자식클래스의 크기를 관리합니다.

기본패널 유형

Panel type (패널유형)

Usage

StackPanel

수직 또는 수평 스택에 자식클래스를 배치합니다.

간단하고 소규모 관리에 유용합니다

WrapPanel

자식 클래스를 왼쪽에서 오른쪽으로 배치 해,

사용가능한 폼을 채울 때마다 새로운 라인에 이동합니다

DockPanel

패널 영역의 전체 가장자리를 각 자식 클래스에 할당합니다.

간략적이고 단순 레이아웃의 정의에 유용합니다.

Grid

그리드 내에서 자식클래스를 정렬합니다.

고정 된 크기와 의존하지 않고 항목을 정렬하는 데 유용합니다.

Canvas

레이아웃 로직을 수행하지 않습니다.

완벽하게 제어 할수 있게 해 줍니다.

UniformGrid

모든 셀이 같은 크기 인 그리드에서 자식클래스를 정렬합니다.

è  기본적인 패널에는 고유 한 모양이 없고 유일한 표시가 있습니다. 그러나 배경을 설정하여 보이게 할수 있습니다.

StackPanel

StackPanel은 자식을 행이나 열에 정렬하는 매우 간단한 패널입니다. 일반적으로 StackPanel을 사용하여 전체 사용자 인터페이스를 레이아웃 하지 않습니다. 가장 유용한 방법은 작은 하위색션을 정렬하는데 유용합니다.

[예제]

 


->실행 결과


-----------------------------------------------------------------------------------------------------

고정크기 VS 컨텐츠크기

 WPF는 두 가지 방법 중 하나로 레이아웃을 처리 할 수 ​​있습니다사용 가능한 공간의 양이 고정되어 있는지 여부에 따라 결정됩니다예를 들어, 사용자 창 크기를 조정하면 창 내용의 크기는 사용자가 원하는대로 됩니다. 레이아웃 시스템의 관점에서 볼 때 크기는 고정되어 있습니다. 레이아웃 시스템에는 크기가 적용되며, 사용자가 시스템을 비울 수 있습니다이러한 경우, 레이아웃 시스템의 일은 사용 가능한 공간에서 최상의 콘텐츠를 제공하는 것입니다.

 

 반면, 사용 가능한 공간이 미리 결정되지 않은 경우 WPF "텐트(tent)"접근 방식을 사용합니다. 

 이 방식에서는 크기가 미리 지정되지 않고 대신 표시 할 내용이것의 가장 간단한 예는 SizeToContent WidthAndHeight 속성으로 설정되어 윈도우가 먼저 인 displayed-

사용자가 창을 연 후에 크기를 조정할 수 있습니다.

 

 이 두 가지 스타일의 혼합은 각 방향으로 하나씩 사용될 수 있습니다예를 들어, 윈도우의 SizeToContent  Height 로 설정되면 윈도우 높이는에 의해 결정됩니다.

 내용을 측정하지만 폭은 Width 속성에 지정된대로 고정 됩니다. 고정 된 레이아웃을 따르는 패널은 이 레이아웃 스타일을 반드시 chil-dren. 예를 들어 사용자가 세로가 포함 된 창 크기를 조정한다고 가정합니다. StackPanel . 이 창은 StackPanel 에 고정 크기를 지정 하지만

StackPanel 은 고정 된 너비를 자식클래스에게 전달합니다. 이때는 컨텐츠의 크기를 사용합니다.

 

각 요소의 높이를 결정하는 접근법.

 반대의 경우도 적용 할 수 있습니다. 제약이 없는 요소는 자녀를 제약 할 수 있습니다. 예를 들어, 수직 StackPanel에 제약이 없는 경우 (, 부모클래스가 크기를 지정하도록 요청한 경우)

 컨테츠는 자신을 위한 너비를 선택해야합니다이것은 각 어린이의 사전 검사를 측정하여 수행합니다. 너비가 가장 큰 자식클래스의 너비를 선택합니다

 

<계속.....>

 

 

 


728x90
반응형

댓글