Share via


SimpleCheckBox(Blend에서 WPF 지원)

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

SimpleCheckBox 컨트롤의 아트보드 보기

JJ170733.b070f542-4f36-422b-a930-be4b1311b2ca(ko-kr,VS.120).png

컨트롤 템플릿 분석

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

  • BulletDecorator 컨테이너- 텍스트에 확인란을 맞추는 데 사용됩니다. BulletDecorator는 두 자식 개체인 Bullet 개체 및 Content 개체(예: ContentPresenter)를 갖고 있습니다. BulletDecorator는 다른 개체에 대해 텍스트를 정렬할 필요가 있는 기타 컨트롤(예: RadioButton)에 사용됩니다.

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

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

속성 트리거 사용

컨트롤 템플릿의 속성 트리거는 컨트롤이 속성 변경에 응답하도록 하는 데 사용됩니다. 트리거 패널의 항목을 클릭하여 트리거가 활성화될 때 변경되는 속성을 확인할 수 있습니다. 예를 들어 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 컨트롤을 사용합니다. Blend은 Grid 컨트롤과 같은 레이아웃 패널을 찾거나 아트 보드에 추가 되는 새 개체가 해당 레이아웃 패널의 자식 개체로 끝날 수 있도록 기본적으로 활성화 합니다.

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

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

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

참고 항목

작업

실습 정보: SimpleCheckBox의 선택 표시 모양 사용자 지정(Blend에서 WPF 지원)