[Controls] 9. ProgressBar

이번에는 ProgressBar를 다루는 내용이지만 StatusBar에 ProgressBar를 추가하는 부분이 있어서 간단하게 StatusBar도 소개하겠습니다. ProgressBar는 어떠한 작업이 진행되는 동안 간단한 에니메이션 효과로 프로그램 내부에서 어떠한 동작이 이루어지고 있다는것을 사용자에게 보여주는 컨트롤입니다. StatusBar는 흔히 작업표시줄이라 해서 윈도우 응용프로그램의 하단에 프로그램에 대한 각종 정보를 표시해서 현재 어떠한 작업을 하는지 현재의 상태를 표시해 주는 컨트롤입니다.

<Window x:Class="wpf09.Window1"
    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
    Title
="Window1" Height="450" Width="600">
   
<Grid>
       
<Button Click="sBar_Click" Margin="179,180,167,0" Height="25" 
            VerticalAlignment
="Top">
            ProgressBar...
       
</Button> 
       
       
<StatusBar Name="sBar" Grid.Column="0" Grid.Row="5" 
            VerticalAlignment
="Bottom" Background="Beige">
           
<StatusBarItem>
               
<TextBlock Text="StatusBar" />
            </
StatusBarItem>
       
</StatusBar>
   
</Grid> 
</Window>

StatusBar안에 ProgressBar를 추가하여 진행속도를 애니메이션으로 보여줍니다.

Duration duration = new Duration(TimeSpan.FromSeconds(10)); 는 버튼을 클릭했을때부터 10초간 애니메이션을 보여주라는 인스턴스입니다.

using System;
using
System.Collections;
using
System.Collections.Generic;
using
System.Text;
using
System.Windows;
using
System.Windows.Controls;
using
System.Windows.Data;
using
System.Windows.Documents;
using
System.Windows.Input;
using
System.Windows.Shapes;
using
System.Windows.Media;
using
System.Windows.Media.Imaging;
using
System.Windows.Navigation;

// 네임스페이스 추가
using System.Windows.Media.Animation;

namespace
wpf09
{
   
/// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>

   
public partial class Window1 : Window
    {
       

       
public Window1()
        {
            InitializeComponent()
;
       
}

       
void sBar_Click(object sender, RoutedEventArgs e)
        {
           
// ProgressBar 선언
           
System.Windows.Controls.ProgressBar processbar =
                new
System.Windows.Controls.ProgressBar();

           
processbar.IsIndeterminate = false;
           
processbar.Orientation = Orientation.Horizontal;
           
processbar.Width = 450;
           
processbar.Height = 15;

           
// 10초간 지속
           
Duration duration = new Duration(TimeSpan.FromSeconds(10));
           
DoubleAnimation animation = new DoubleAnimation(100.0, duration);
           
processbar.BeginAnimation(System.Windows.Controls.ProgressBar.ValueProperty, animation);

           
// StatusBar에 ProgressBar 추가
           
sBar.Items.Add(processbar);
           
       
}
    }
}



그림 1.프로그램 실행


※ 테스트 환경
-----------------------------------------------------------------------------------------
운영체체 : Windows Vista Ultimate 32bit
개발툴 : Microsoft Visual C# Codename "Orcas"
-----------------------------------------------------------------------------------------

'닷넷 프로그래밍(~2012)' 카테고리의 다른 글

[Controls] 13. Menu  (0) 2006.12.22
[Controls] 12. ListBox  (0) 2006.12.22
[Controls] 11. PasswordBox  (0) 2006.12.22
[Controls] 9. ProgressBar  (0) 2006.12.22
[Controls] 8. TabControl  (0) 2006.12.22
[Controls] 7. ContextMenus  (6) 2006.12.22
[Controls] 6. ComboBox  (0) 2006.12.22
[Controls] 5. CheckBox  (0) 2006.12.22