SimpleButton
단추는 Click 이벤트에 응답하는 콘텐츠 컨트롤입니다. Microsoft Expression Blend에서는 단추를 두 번 클릭한 후 요소를 그려 단추에 콘텐츠를 넣을 수 있습니다. 단추에 여러 요소를 넣으려면 먼저 Grid나 Canvas 같은 레이아웃 패널을 추가해야 합니다. 기본적으로 단추에도 텍스트가 표시되며, 단추를 마우스 오른쪽 단추로 클릭한 다음 텍스트 편집을 클릭하여 텍스트를 편집할 수 있습니다.
SimpleButton 컨트롤의 아트보드 보기
컨트롤 템플릿 분석
SimpleButton 컨트롤 템플릿은 다음 항목으로 구성됩니다.
Grid 레이아웃 패널 단추 내에 여러 자식 요소를 넣는 데 사용됩니다. 또한 Grid를 사용하면 템플릿에 더 많은 요소를 손쉽게 추가할 수 있습니다. 예를 들어 루트 요소가 Border인 경우 다른 요소를 추가하려고 하면 Border 요소는 자식을 하나만 가질 수 있기 때문에 ContentPresenter 요소가 다른 요소로 바뀝니다.
Border 요소 템플릿이 적용되는 단추 컨트롤의 BorderThickness 속성에 템플릿 바인딩할 수 있는 BorderThickness 속성이 들어 있어서 사용됩니다.
ContentPresenter 템플릿이 적용되는 단추의 Content 속성을 표시하는 데 사용됩니다. 단추의 콘텐츠를 표시하려면 이 요소가 있어야 합니다.
개체 보기: SimpleButton 컨트롤의 기본 파트(템플릿)
속성 트리거 사용
컨트롤 템플릿의 속성 트리거는 컨트롤이 속성 변경에 응답하도록 하는 데 사용됩니다. 트리거 패널의 항목을 클릭하여 트리거가 활성화될 때 변경되는 속성을 확인할 수 있습니다. 예를 들어 SimpleButton 템플릿에서 IsMouseOver 속성이 True가 되면 Border 요소의 배경색이 MouseOverBrush 리소스로 변경됩니다.
브러시 사용
SimpleButton 템플릿에서는 SimpleStyles.xaml 리소스 사전의 다음과 같은 브러시 리소스가 사용됩니다.
Background 속성은 활성화된 트리거가 없는 경우에는 NormalBrush를, IsMouseOver가 True인 경우에는 MouseOverBrush를, IsPressed가 True인 경우에는 PressedBrush를, IsEnabled가 False인 경우에는 DisabledBackgroundBrush를 사용하여 설정됩니다.
Border 속성은 활성화된 트리거가 없는 경우에는 NormalBorderBrush를, IsKeyboardFocused가 True인 경우에는 DefaultBorderBrush를, IsPressed가 True인 경우에는 PressedBorderBrush를, IsEnabled가 False인 경우에는 DisabledBorderBrush를 사용하여 설정됩니다.
Foreground 속성은 IsEnabled가 False인 경우 DisabledForegroundBrush를 사용하여 설정됩니다.
모범 사례 및 디자인 지침
일반적으로 디자이너가 컨트롤에 시각적 요소를 더 추가할 수 있도록 하려면 템플릿의 루트로 Grid 컨트롤을 사용합니다. 기본적으로 Expression Blend에서는 Grid 컨트롤과 같은 레이아웃 패널을 찾아 활성화함으로써 아트보드에 추가되는 새 요소가 해당 레이아웃 패널의 자식 요소가 되도록 합니다.
속성 트리거는 단추 클릭과 같은 사용자 액션에 따라 컨트롤의 모양을 변경하는 데 사용됩니다. 하나의 속성 트리거(예: IsPressed 상태의 경우)와 동일한 작업을 수행하려면 이벤트 트리거는 두 개(예: MouseDown 및 MouseUp 이벤트)가 필요하기 때문에 속성 트리거가 이벤트 트리거보다 기본 설정됩니다. 그러나 이벤트 트리거를 사용하면 보다 복잡한 컨트롤의 애니메이션 타임라인을 시작할 수 있습니다.
일반적으로는 IsMouseOver, IsPressed 및 IsEnabled(False) 상태에서 브러시나 시각적 변경을 설정하려고 합니다. 컨트롤 주위에 점선을 표시하는 데 일반적으로 사용되는 IsKeyboardFocused 상태를 사용할 수도 있습니다.