SimpleCheckBox

This page applies to WPF projects only

확인란(CheckBox)은 선택한 상태, 선택하지 않은 상태, 확정되지 않은 상태의 세 가지 상태 값을 갖는 토글로 작동하는 콘텐츠 컨트롤입니다. IsChecked 상태는 확인란이 선택되었는지 여부를 나타냅니다. Microsoft Expression Blend에서는 확인란을 두 번 클릭한 후 요소를 그려 확인란에 콘텐츠를 넣을 수 있습니다. 확인란에 여러 요소를 넣으려면 먼저 Grid나 Canvas 같은 레이아웃 패널을 추가해야 합니다. 기본적으로 확인란에도 텍스트가 표시되며, 확인란을 마우스 오른쪽 단추로 클릭한 다음 텍스트 편집을 클릭하여 텍스트를 편집할 수 있습니다.

SimpleCheckBox 컨트롤의 아트보드 보기

Cc295106.b070f542-4f36-422b-a930-be4b1311b2ca(KO-KR,Expression.30).png

컨트롤 템플릿 분석

SimpleCheckBox 컨트롤 템플릿은 다음 항목으로 구성됩니다.

  • BulletDecorator 컨테이너 텍스트에 확인란을 맞추는 데 사용됩니다. BulletDecorator는 bullet 요소와 content 요소(예: ContentPresenter)라는 두 개의 자식 요소를 갖습니다. BulletDecorator는 다른 요소에 텍스트를 맞추어야 하는 RadioButton과 같은 다른 컨트롤에도 사용됩니다.

  • Bullet 요소 이 요소에는 Grid 패널이 포함되며 Grid 패널에는 CheckMark와 Border 요소라는 Path 요소가 포함됩니다. Path는 "x" 표시를 그리는 데 사용됩니다.

  • ContentPresenter 템플릿이 적용되는 확인란의 Content 속성을 표시하는 데 사용됩니다. 확인란의 콘텐츠를 표시하려면 이 요소가 있어야 합니다.

    개체 보기: SimpleCheckBox 컨트롤의 기본 파트(템플릿)

    Cc295106.0d0b3635-222f-44ec-81d6-3bf59a1beca3(KO-KR,Expression.30).png

속성 트리거 사용

컨트롤 템플릿의 속성 트리거는 컨트롤이 속성 변경에 응답하도록 하는 데 사용됩니다. 트리거 패널의 항목을 클릭하여 트리거가 활성화될 때 변경되는 속성을 확인할 수 있습니다. 예를 들어 SimpleCheckBox 템플릿에서 IsChecked 속성이 False이면 CheckMark 패스 요소의 표시 유형이 Collapsed로 변경됩니다. 다른 트리거에서는 브러시 리소스를 사용하여 Border 요소의 배경을 변경합니다.

브러시 사용

SimpleCheckBox 템플릿에서는 SimpleStyles.xaml 리소스 사전의 다음과 같은 브러시 리소스가 사용됩니다.

  • Border 요소의 Background 속성은 트리거가 활성화되지 않은 경우에는 NormalBrush를, IsMouseOver가 True인 경우에는 MouseOverBrush를, IsPressed가 True인 경우에는 PressedBrush를, IsEnabled가 False인 경우에는 DisabledBackgroundBrush를 사용하여 설정됩니다.

  • BorderBrush 속성은 트리거가 활성화되지 않은 경우에는 NormalBorderBrush를, IsPressed가 True인 경우에는 PressedBorderBrush를, IsEnabled가 False인 경우에는 DisabledBorderBrush를 사용하여 설정됩니다.

  • Foreground 속성은 IsEnabled가 False인 경우 DisabledForegroundBrush를 사용하여 설정됩니다.

  • CheckMark 요소의 Stroke 속성은 GlyphBrush를 사용하여 "x" 표시를 그립니다.

모범 사례 및 디자인 지침

  • 일반적으로 응용 프로그램 UI(사용자 인터페이스) 디자이너가 컨트롤에 시각적 요소를 더 추가할 수 있도록 하려면 템플릿의 루트로 Grid 컨트롤을 사용합니다. 기본적으로 Expression Blend에서는 Grid 컨트롤과 같은 레이아웃 패널을 찾아 활성화함으로써 아트보드에 추가되는 새 요소가 해당 레이아웃 패널의 자식 요소가 되도록 합니다.

  • 확인란의 콘텐츠는 ContentPresenter 요소에 의해 표시됩니다. ContentPresenter 요소는 템플릿이 적용되는 컨트롤의 Content 속성에 템플릿을 자동으로 바인딩합니다. 확인란에서 템플릿 부모의 콘텐츠를 표시하려면 이 요소가 있어야 합니다.

  • 경우에 따라 사용하고 있는 컨트롤에 특성이 부족하여 컨트롤 템플릿에서 바인딩하지 못할 수 있습니다. 예를 들어 CheckBox 컨트롤은 CheckMark 요소의 브러시를 설정하는 특성을 제공하지 않습니다. 이런 경우 CheckMark의 스트로크는 더 쉽게 변경할 수 있도록 브러시로 설정됩니다. CheckBox 컨트롤을 기반으로 사용자 지정 클래스를 만들고 바인딩할 특성을 더 추가하거나, 기존 특성 중 하나에 바인딩할 수 있습니다. 이 사용자 가이드의 실습 정보: 사용자 지정 속성으로 사용자 지정 컨트롤 만들기에서 사용자 지정 클래스의 예를 참조하십시오.

  • CheckMark 패스 요소를 표시하고 숨길 수 있기 때문에 Grid 요소의 크기는 고정되어 있습니다. Grid 요소의 크기가 고정되어 있지 않으면 확인란의 선택 여부가 변경될 때 ContentPresenter의 텍스트가 이동하게 됩니다. Grid 크기를 고정하고 CheckMark 패스를 숨기는 대신 CheckMark 패스 개체에 대한 Stroke 속성의 불투명도를 0으로 변경할 수도 있습니다.

참조

작업

실습 정보: SimpleCheckBox의 선택 표시 모양 사용자 지정