4-4-3.ÄÁÆ®·Ñ °ªÀÇ ÃʱâÈ­

½½¶óÀÌ´õÀÇ Value ¼Ó¼ºÀº º° ÁöÁ¤ÀÌ ¾øÀ¸¸é ÃÖ¼Ò°ªÀ¸·Î ÃʱâÈ­µÈ´Ù. µðÆúÆ® ¹üÀ§°¡ 0~10À̹ǷΠÃÖÃÊ ½ÇÇà½Ã Value´Â 0ºÎÅÍ ½ÃÀÛÇÒ °ÍÀÌ´Ù. ´ë°³ÀÇ °æ¿ì´Â ù °ªÀ» °¡Áö´Â °ÍÀÌ ¹«³­ÇÏÁö¸¸ ¶§·Î´Â óÀ½ ½ÃÀ۽úÎÅÍ Áß°£°ªÀ» °¡Áú ¼öµµ ÀÖ´Ù. ÀÌ·² ¶§´Â XAML ¹®¼­¿¡ ½½¶óÀÌ´õÀÇ Value ¼Ó¼ºÀ» ¿øÇÏ´Â °ªÀ¸·Î ÁöÁ¤ÇÏ¸é µÈ´Ù. ´ÙÀ½ ¿¹Á¦´Â ½½¶óÀÌ´õÀÇ Value¸¦ 4·Î ÃʱâÈ­ÇÑ´Ù.

 

SliderInit1

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

    <StackPanel>

        <TextBlock Name="txtValue" Text="0" FontSize="50"/>

        <Slider Name="Slider" Margin="20" Value="4"

                ValueChanged="Slider_ValueChanged" />

    </StackPanel>

</Grid>

================================== CS =======================================

private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)

{

    txtValue.Text = Slider.Value.ToString();

}

 

<Slider> ¿¤¸®¸ÕÆ®ÀÇ Value ¼Ó¼º¿¡ 4¸¦ ´ëÀÔÇßÀ» »ÓÀÌ´Ù. Value´Â Àб⠾²±â°¡ °¡´ÉÇÑ ¼Ó¼ºÀ̹ǷΠÀÌ ´ëÀÔ¹® ÀÚü´Â ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù. ±×·¯³ª ÀÌ ¿¹Á¦¸¦ ½ÇÇàÇØ º¸¸é º¸±â ÁÁ°Ô ´Ù¿îµÇ¾î ¹ö¸®¸ç µð¹ö±ëÇØ º¸¸é ValueChanged À̺¥Æ® Çڵ鷯ÀÇ Äڵ忡¼­ NullReferenceException ¿¹¿Ü°¡ ¹ß»ýÇÑ´Ù. ÀÌ Çڵ鷯¿¡¼­ ÂüÁ¶ÇÏ´Â txtValue °´Ã¼°¡ ¾ÆÁ÷ ÃʱâÈ­µÇÁö ¾Ê¾Ò´Ù´Â ¶æÀÌ´Ù.

ÀÌ ¹®Á¦ÀÇ ¿øÀÎÀº ValueChanged À̺¥Æ®°¡ Value°¡ ¹Ù²ð ¶§¸¶´Ù È£ÃâµÇ¸ç ½½¶óÀÌ´õ »ý¼ºÁß¿¡ Value°ªÀ» ÃʱâÈ­Çصµ È£ÃâµÇ±â ¶§¹®ÀÌ´Ù. Value="4" ´ëÀÔ¹®À» ½ÇÇàÇÒ ¶§´Â XAMLÀÇ ¿¤¸®¸ÕÆ®µéÀÌ ÃʱâÈ­µÇ´Â ÁßÀ̸ç MainPageÀÇ txtValue ¸â¹ö´Â ¾ÆÁ÷ ÃʱâÈ­µÇÁö ¾ÊÀº »óÅÂÀÌ´Ù. µû¶ó¼­ ÀÌ ½ÃÁ¡¿¡¼­´Â txtValue¸¦ ÂüÁ¶ÇÒ ¼ö ¾ø´Ù. ¿ä¾àÇÏÀÚ¸é ºñÁÖ¾ó Æ®¸®¸¦ ¸¸µé°í ÀÖ´Â Áß¿¡ ¹ß»ýÇÑ À̺¥Æ® Çڵ鷯¿¡¼­´Â ÄÁÆ®·ÑÀ» ÇԺηΠÂüÁ¶Çؼ­´Â ¾ÈµÈ´Ù.

»ç½Ç ValueChanged À̺¥Æ®ÀÇ Á¤ÀÇ¿¡¼­ºÎÅÍ ±Ùº»ÀûÀÎ ¹®Á¦°¡ Àִµ¥ ÀÌ À̺¥Æ®´Â °ªÀÌ ¹Ù²ð ¶§¸¶´Ù ¹ß»ýÇÏ´Â °ÍÀ¸·Î µÇ¾î ÀÖ´Ù. XAML¿¡¼­ °ªÀ» ÃʱâÈ­ÇÏ´Â µ¿ÀÛÀº ù °ªÀ» ÁÖ´Â °ÍÀ̹ǷΠ°ªÀÌ ¹Ù²î´Â °Í°ú´Â ¾à°£ ¼ºÁúÀÌ ´Ù¸£´Ù. »ç¿ëÀÚ°¡ ÄÁÆ®¸¦À» Á÷Á¢ Á¶ÀÛÇÒ ¶§¸¸ À̺¥Æ®°¡ ¹ß»ýÇÑ´Ù¸é ÀÌ·± ¹®Á¦°¡ ¾ø°ÚÁö¸¸ ½Ç¹ö¶óÀÌÆ®ÀÇ À̺¥Æ®´Â ±×·¸Áö ¾ÊÀ¸¹Ç·Î ¹®Á¦¸¦ ȸÇÇÇØ¾ß ÇÑ´Ù.

°¡Àå ½¬¿î ¹æ¹ýÀº À̺¥Æ® Çڵ鷯¿¡¼­ ÄÁÆ®·ÑÀÌ Á¦´ë·Î ÃʱâÈ­µÇ¾ú´ÂÁö null üũ¸¦ ÇØ º¸´Â °ÍÀÌ´Ù. ÂüÁ¶ÇÏ°íÀÚ ÇÏ´Â ÄÁÆ®·ÑÀÌ Á¦´ë·Î ÃʱâÈ­µÇ¾úÀ» ¶§¸¸ ÄÁÆ®·ÑÀ» ¾×¼¼½ºÇÏ°í ±×·¸Áö ¾ÊÀ» ¶§´Â ¾Æ¹« µ¿ÀÛµµ ÇÏÁö ¾Ê´Â´Ù. ´ÙÀ½°ú °°ÀÌ ¿¹Á¦¸¦ ¼öÁ¤Çϸé ÃʱâÈ­Áß¿¡´Â txtValue¸¦ ¾×¼¼½ºÇÏÁö ¾ÊÀ¸¹Ç·Î ÃÖ¼ÒÇÑ ´Ù¿îµÇÁö´Â ¾Ê´Â´Ù.

 

SliderInit2

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

    <StackPanel>

        <TextBlock Name="txtValue" Text="0" FontSize="50"/>

        <Slider Name="Slider" Margin="20" Value="4"

                ValueChanged="Slider_ValueChanged" />

    </StackPanel>

</Grid>

================================== CS =======================================

private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)

{

    if (txtValue != null)

    {

        txtValue.Text = Slider.Value.ToString();

    }

}

 

±×·¯³ª ÀÌ·¸°Ô Çϸé ÃÖÃÊ Value°ªÀ» ÁöÁ¤ÇÒ ¶§ÀÇ À̺¥Æ®°¡ ¹«½ÃµÇ¹Ç·Î ÅؽºÆ® ºí·Ï¿¡ ÃʱⰪÀÌ Ãâ·ÂµÇÁö ¾Ê´Â ¶Ç ´Ù¸¥ ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. ½½¶óÀÌ´õÀÇ ½æÀº Áß°£Âë¿¡ ÀÖÁö¸¸ ÀÌ °ªÀ» Ãâ·ÂÇÏ´Â ÅؽºÆ® ºí·ÏÀº ¾ÆÁ÷ 0ÀÌ´Ù. ÀÌ »óÅ¿¡¼­ ½½¶óÀÌ´õ¸¦ ¿òÁ÷ÀÌ¸é ±×¶§¾ß ºñ·Î¼Ò ÅؽºÆ® ºí·ÏÀÇ °ªÀÌ Á¦´ë·Î Ãâ·ÂµÈ´Ù.

Àӽà ¹æÆíÀ¸·Î XAML¹®¼­¿¡¼­ txtValueÀÇ Text ¼Ó¼º¿¡ Á÷Á¢ 4¸¦ ´ëÀÔÇÏ¿© ½½¶óÀÌ´õÀÇ ÃʱⰪ°ú ÀÏÄ¡½ÃÄÑ ³õÀ» ¼ö´Â ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ·± ½ÄÀ̸é ÃʱⰪÀ» ¹Ù²Ü ¶§¸¶´Ù 2±ºµ¥¸¦ °°ÀÌ ¼öÁ¤ÇØ¾ß ÇÏ´Â Ãß°¡ ÀϰŸ®°¡ »ý±â¹Ç·Î ÄÚµå °ü¸®»ó ÁÁÀº ±¸Á¶´Â ¾Æ´Ï´Ù. ¸Å À̺¥Æ® Çڵ鷯¸¶´Ù ÃʱâÈ­ÁßÀÇ ¿¡·¯¸¦ ÇÇÇϱâ À§ÇØ Á¶°Ç¹®À» ³Ö´Â °Íµµ ±ÍÂúÀº ÀÏÀÌ¸ç ½ÇÇà ¼Óµµ³ª ÇÁ·Î±×·¥ Å©±â°¡ ³¶ºñµÈ´Ù.

ÀÌ ¹®Á¦ÀÇ Á¤¼®ÀûÀÎ ÇعýÀº XAML¿¡¼­ ¼Ó¼º°ªÀ» ÃʱâÈ­ÇÏÁö ¾Ê°í ºñÁÖ¾ó Æ®¸®¸¦ ¿Ï¼ºÇÑ ÈÄ¿¡ ÃʱâÈ­ÇÏ´Â °ÍÀÌ´Ù. ÀÌ ½ÃÁ¡Àº »ý¼ºÀÚ¿¡¼­ InitializeComponent ¸Þ¼­µå¸¦ È£ÃâÇÑ Á÷ÈÄÀÌ´Ù. XAML ÆÄÀÏÀÇ Value ´ëÀÔ¹®À» Á¦°ÅÇÏ°í ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÛ¼ºÇÏ¸é ¸ðµç ¹®Á¦°¡ ÇØ°áµÈ´Ù.

 

SliderInit3

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

    <StackPanel>

        <TextBlock Name="txtValue" Text="0" FontSize="50"/>

        <Slider Name="Slider" Margin="20"

            ValueChanged="Slider_ValueChanged" />

    </StackPanel>

</Grid>

================================== CS =======================================

public MainPage()

{

    InitializeComponent();

 

    Slider.Value = 4;

}

 

private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)

{

    txtValue.Text = Slider.Value.ToString();

}

 

InitializeComponent ¸Þ¼­µå°¡ ¸®ÅÏÇÏ¸é ºñÁÖ¾ó Æ®¸®°¡ ¿Ï¼ºµÈ »óÅÂÀ̹ǷΠÀ̶§ºÎÅÍ´Â ¸ðµç ÄÁÆ®·ÑÀ» ÀÚÀ¯·Ó°Ô ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù. Slider.Value = 4; Äڵ带 ½ÇÇàÇÒ ¶§´Â txtValue°¡ ÀÌ¹Ì ÃʱâÈ­µÇ¾î ÀÖÀ¸¹Ç·Î ¾Æ¹« ¹®Á¦°¡ ¾ø´Ù. À̺¥Æ® Çڵ鷯ÀÇ null üũ Á¶°Ç¹®ÀÌ ¾ø¾îµµ ÄÚµå´Â Á¤»ó ½ÇÇàµÇ¸ç ÅؽºÆ® ºí·Ï¿¡µµ ÃʱⰪÀÌ Àß Ç¥½ÃµÈ´Ù.

±×·¸´Ù°í ¸ðµç ¼Ó¼ºÀ» »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¼Ó¼ºÀ» º¯°æÇÒ ¶§ À̺¥Æ®°¡ ¹ß»ýÇÏ°í ±× À̺¥Æ®¿¡¼­ ´Ù¸¥ ÄÁÆ®·ÑÀ» ÂüÁ¶ÇÏ´Â °æ¿ì¿¡¸¸ ÀÌ ¹æ½ÄÀ» »ç¿ëÇÏ¸é µÈ´Ù. XAML¹®¼­¿¡¼­ ÃʱⰪÀ» ÁöÁ¤ÇÒ ¼ö ¾ø¾î ºÒÆíÇÏÁö¸¸ À̺¥Æ® Çڵ鷯¸¶´Ù ÃʱâÈ­ ¿©ºÎ¸¦ Á¡°ËÇÏÁö ¾Ê¾Æµµ µÇ¹Ç·Î ÄÚµå´Â ÈξÀ ´õ °£´ÜÇØÁø´Ù.

¼Ó¼ºÀÇ ÃʱâÈ­ ¹®Á¦´Â ½½¶óÀÌ´õ¿¡¸¸ ¹ß»ýÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¸ðµç ÄÁÆ®·Ñ¿¡ °øÅëÀûÀ¸·Î ³ªÅ¸³­´Ù. CheckBoxTest ¿¹Á¦ÀÇ chkDisable üũ ¹Ú½º´Â ÃÖÃÊ ¾ðüũ »óÅ·Π½ÃÀ۵Ǵµ¥ ¸¸¾à üũ »óÅ·ΠÃʱâÈ­ÇÑ´Ù°í ÇØ º¸ÀÚ. XAML ¹®¼­¿¡ IsChecked="true" ´ëÀÔ¹®À» ½á ³ÖÀ¸¸é µÉ °Í °°Áö¸¸ ¾Õ ¿¹Á¦¿Í ¶È°°Àº ¹®Á¦°¡ ¹ß»ýÇÑ´Ù.

 

<CheckBox Name="chkDisable" Content="Disable Button" Checked="chkDisable_Checked"

            Unchecked="chkDisable_Unchecked" Click="chkDisable_Click" IsChecked="true" />

 

üũ ¹Ú½ºÀÇ IsChecked ¼Ó¼ºÀÌ ¹Ù²î¸é Checked À̺¥Æ®°¡ ¹ß»ýÇÏ¸ç ¿©±â¼­ ÂüÁ¶ÇÏ´Â btnTest °´Ã¼°¡ ¾ÆÁ÷ ÃʱâÈ­µÇÁö ¾Ê¾ÒÀ¸¹Ç·Î ¹®Á¦°¡ ¹ß»ýÇÏ´Â °ÍÀÌ´Ù. ¹®Á¦°¡ ¹ß»ýÇÏ´Â ¿øÀÎÀÌ ¾Õ ¿¹Á¦¿Í µ¿ÀÏÇϹǷΠÇØ°á ¹æ¹ýµµ ¿ª½Ã µ¿ÀÏÇÏ´Ù. chkDisable.IsChecked = true; ´ëÀÔ¹®À» »ý¼ºÀÚÀÇ ³¡ ºÎºÐÀ¸·Î ¿Å±â¸é ±ò²ûÇÏ°Ô ÇØ°áµÈ´Ù.

 

ÀÌ»óÀ¸·Î À©µµ¿ì ÆùÀÌ Á¦°øÇÏ´Â ±âº» ÄÁÆ®·Ñ¿¡ ´ëÇØ ¼Ò°³Çß´Ù. ÀÌ ¿Ü¿¡µµ À©µµ¿ìÆù¿¡´Â ´õ ¸¹Àº ÄÁÆ®·ÑµéÀÌ ÀÖÀ¸¸ç ÅøŶÀ» ¼³Ä¡Çϸé ÈξÀ ´õ ¸¹Àº ÄÁÆ®·ÑÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÇǺ¿, Æijë¶ó¸¶, ¸®½ºÆ® ¹Ú½º °°Àº °í±Þ ÄÁÆ®·ÑÀº ÈξÀ ´õ º¹ÀâÇÏ°í ¸ÕÀú ¾Ë¾Æ¾ß ÇÒ °ÍÀÌ ¸¹À¸¹Ç·Î Â÷ÈÄ¿¡ »ó¼¼ÇÏ°Ô ¿¬±¸ÇØ º¼ °ÍÀÌ´Ù.