여담...
어떻게 보면 별거 아닌 내용일지 모른다. 하지만 영어 공부, WPF 공부가 될 것으로 믿는다...
WPF CheckBox Control
XAML 과 C# 을 이용하여 WPF CheckBox 를 만들고 사용하는 방법을 알아보자.
Creating a CheckBox
CheckBox 엘리먼트는 XAML 에서 WPF CheckBox 를 나타낸다.
<CheckBox/>
Content 어트리뷰트는 CheckBox 의 텍스트를 나타낸다.
Name 어트리뷰트는 컨트롤의 이름을 나타낸다. 따라서 다른 컨트롤과 구분되는 유일한 값을 가져야 한다.
Foreground 어트리뷰트는 CheckBox 의 텍스트 전경색을 나타낸다.
FontFamily, FontStyle, FontWeight, FontSize, FontStretch 는 Font 와 관련된 어트리뷰트들 이다.
아래 코드 조각은 CheckBox 를 생성하고 CheckBox 컨트롤의 name, content, foreground, font 를 설정한다.
<CheckBox Name="McCheckBox" Foreground="Orange"
Canvas.Left="20" Canvas.Top="10" Content="Check Me"
FontFamily="Georgia" FontSize="20" FontWeight="Bold" >
</CheckBox>
출력되는 CheckBox 는 다음과 같다.
IsChecked 프로퍼티는 CheckBox 컨트롤의 상태를 나타낸다. IsThreeState 프로퍼티는 CheckBox 가 2가지 또는 3가지의 상태를 갖는지를 나타낸다. 여기서 말하는 3가지 상태는 checked, unchecked, indeterminate 를 말한다. 아래 코드 조각은 CheckBox 의 IsChecked 와 IsThreeState 프로프티를 설정하는 모습을 보여준다.
<CheckBox Name="McCheckBox"
Canvas.Left="10" Canvas.Top="10"
Content="Check Me"
IsChecked="True" IsThreeState="True" >
</CheckBox>
checked 상태
unchecked 상태
indeterminate 상태 (넌 모냐?!...)
Adding a CheckBox Click Event Handler
CheckBox 엘리먼트의 Checked 와 Unchecked 어트리뷰트들은 checked, unchecked 이벤트 핸들러를 연결시킬 수 있다. checked 와 unchecked 이벤트들은 CheckBox 상태가 체크 되었거나 체크 해제되었을 때 발생된다. 아래 코드 조각은 이 두가지 이벤트 핸들러를 연결한 모습이다.
<CheckBox Name="McCheckBox"
Canvas.Left="10" Canvas.Top="10"
Content="Check Me"
IsChecked="True" IsThreeState="True"
Checked="McCheckBox_Checked" Unchecked="McCheckBox_Unchecked">
</CheckBox>
다음과 같이 이벤트 핸들러가 추가된다.
private void McCheckBox_Checked(object sender, RoutedEventArgs e)
{
}
private void McCheckBox_Unchecked(object sender, RoutedEventArgs e)
{
}
각 이벤트 발생 시 CheckBox 의 Content 를 변경시켜 주었다.
private void McCheckBox_Checked(object sender, RoutedEventArgs e)
{
McCheckBox.Content= "Checked";
}
private void McCheckBox_Unchecked(object sender, RoutedEventArgs e)
{
McCheckBox.Content= "Unchecked";
}
Creating a CheckBox Dynamically
아래 코드는 run-time 에 CheckBox 컨트롤을 생성하고 프로퍼티를 설정하는 코드이다.
private void CreateDynamicCheckBox()
{
CheckBox chb = new CheckBox();
chb.Content = "Click me";
chb.IsChecked = true;
chb.Foreground = new SolidColorBrush(Colors.Orange);
chb.IsChecked = true;
LayoutRoot.Children.Add(chb);
}