티스토리 뷰

C#/WPF

WPF tutorial - The CheckBox control

광그로 2017. 6. 22. 14:46

http://www.wpf-tutorial.com/basic-controls/the-checkbox-control/


가장 기본적인 형태의 체크박스입니다.

1
2
3
4
5
6
<StackPanel Margin="10">
        <Label FontWeight="Bold">Application Options</Label>
        <CheckBox>Enable feature ABC</CheckBox>
        <CheckBox IsChecked="True">Enable feature XYZ</CheckBox>
        <CheckBox>Enable feature WWW</CheckBox>
    </StackPanel>
cs




Custom content


CheckBox 컨트롤은 ContentControl 클래스를 상속합니다. 이것은 커스텀 컨텐츠를 취할 수 있음을 의미합니다.


Run class


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 <StackPanel Margin="10">
                <Label FontWeight="Bold">Application Options</Label>
                <CheckBox>
                        <TextBlock>
                                Enable feature <Run Foreground="Green" FontWeight="Bold">ABC</Run>
                        </TextBlock>
                </CheckBox>
                <CheckBox IsChecked="True">
                        <WrapPanel>
                                <TextBlock>
                                        Enable feature <Run FontWeight="Bold">XYZ</Run>
                                </TextBlock>
                                <Image Source="/WpfTutorialSamples;component/Images/question.png" Width="16" Height="16" Margin="5,0" />
                        </WrapPanel>
                </CheckBox>
                <CheckBox>
                        <TextBlock>
                                Enable feature <Run Foreground="Blue" TextDecorations="Underline" FontWeight="Bold">WWW</Run>
                        </TextBlock>
                </CheckBox>
        </StackPanel>
cs

이미지 파일이 없어 나오지는 않지만, 이미지도 추가할 수 있습니다.

또한, 컨텐츠의 어느 부분을 클릭하더라도 체크박스를 제어할 수 있습니다.




IsThreeState 속성

일반적으로, 체크박스의 값은 boolean값(true/false)으로 해당합니다. 하지만, boelean이 nullable될 수도 있기 때문에, 체크박스는 이러한 경우 또한 지원할 수 있습니다. IsThreeState = "true"로 설정하면, 체크박스는 'indeterminate state'라는 세번째 상태를 갖습니다.


1
2
3
4
5
6
7
8
9
10
11
<StackPanel Margin="10">
        <Label FontWeight="Bold">Application Options</Label>
        <StackPanel Margin="10,5">
            <CheckBox IsThreeState="True" Name="cbAllFeatures" Checked="cbAllFeatures_CheckedChanged" Unchecked="cbAllFeatures_CheckedChanged">Enable all</CheckBox>
            <StackPanel Margin="20,5">
                <CheckBox Name="cbFeatureAbc" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Enable feature ABC</CheckBox>
                <CheckBox Name="cbFeatureXyz" IsChecked="True" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Enable feature XYZ</CheckBox>
                <CheckBox Name="cbFeatureWww" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Enable feature WWW</CheckBox>
            </StackPanel>
        </StackPanel>
    </StackPanel>
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void cbAllFeatures_CheckedChanged(object sender, RoutedEventArgs e)
        {
cbAllFeatures가 클릭된다면, Abc, Xy, Www 모두 true로 만들어라.
            bool all_check = (cbAllFeatures.IsChecked == true);
            cbFeatureAbc.IsChecked = all_check;
            cbFeatureXyz.IsChecked = all_check;
            cbFeatureWww.IsChecked = all_check;

        }
 
private void cbFeature_CheckedChanged(object sender, RoutedEventArgs e)
        {
            cbAllFeatures.IsChecked = null;
            if ((cbFeatureAbc.IsChecked == true&& (cbFeatureXyz.IsChecked == true&& (cbFeatureWww.IsChecked == true))
                cbAllFeatures.IsChecked = true;
            if ((cbFeatureAbc.IsChecked == false&& (cbFeatureXyz.IsChecked == false&& (cbFeatureWww.IsChecked == false))
                cbAllFeatures.IsChecked = false;
        }

cs


'C# > WPF' 카테고리의 다른 글

WPF tutorial - The PasswordBox control  (0) 2017.06.22
WPF tutorial - The RadioButton control  (0) 2017.06.22
WPF tutorial - 복습 및 simple login  (0) 2017.06.21
WPF tutorial - The TextBox control  (0) 2017.06.20
WPF tutorial - The Label control  (0) 2017.06.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함