본문 바로가기
.NET WPF

Silverlight 2 Controls Review - DatePicker, Calendar

by 태디 2008. 9. 28.
728x90

DatePicker, Calendar는 날짜 및 일정 관련 컨트롤입니다. 예약시스템이나 스케즐관리 프로그램에 유용한 컨트롤이라 할 수 있습니다.

DatePicker, 컨트롤을 이용하여 시작일과 종료일 선택하고 Calendar 컨트롤에 선택한 기간을 선택하는 프로그램입니다.

Calendar는 현재 날짜 또는 선택한 날짜를 TextBlock, TextText 컨트롤등에 출력할 수 있으며, 기본출력으로 연도별, 월별로 선택하여 달력에 출력할 수 있습니다.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

Xaml Code

<UserControl

    xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" 

    x:Class="ControlTest3.Page"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300">

   

    <Grid x:Name="LayoutRoot" Background="White">

        <basics:DatePicker VerticalAlignment="Top" Height="24" Margin="63,30,195,0"

           x:Name="dpFrom" SelectedDateChanged="dpStartDate_SelectedDateChanged"/>

        <basics:DatePicker Height="24" Margin="63,61,195,0" VerticalAlignment="Top"

           x:Name="dpTo" SelectedDateChanged="dpEndDate_SelectedDateChanged"/>

        <basics:Calendar Margin="-6,101,174,25" x:Name="cal"/>

        <TextBlock Height="17" HorizontalAlignment="Left" Margin="19,31,0,0"

           VerticalAlignment="Top" Width="43" Text="시작일" TextWrapping="Wrap"

           RenderTransformOrigin="0.605,2.471" />

        <TextBlock Height="17" HorizontalAlignment="Left" Margin="19,62,0,0"

           VerticalAlignment="Top" Width="43" TextWrapping="Wrap" Text="종료일" />

        <TextBlock Height="17" HorizontalAlignment="Left" Margin="19,31,0,0"

           VerticalAlignment="Top" Width="43" Text="시작일" TextWrapping="Wrap" />

    </Grid>

</UserControl>

 

소스코드는 Silverlight 2.0 RC0 기준입니다.


C# Code

using System;

using System.Windows;

using System.Windows.Controls;

 

namespace ControlTest3

{

    public partial class Page : UserControl

    {

        private DateTime toDayStart;

        private DateTime toDayEnd;

 

        public Page()

        {

            InitializeComponent();

        }

 

        private void dpStartDate_SelectedDateChanged(object sender,
           SelectionChangedEventArgs e)

        {

            isFromToDay();

        }

 

        private void dpEndDate_SelectedDateChanged(object sender,
           SelectionChangedEventArgs e)

        {

            isFromToDay();

        }

 

        public void isFromToDay()

        {

            toDayStart = dpFrom.SelectedDate.Value;

            toDayEnd = dpTo.SelectedDate.Value;

 

            if (toDayStart < toDayEnd)

            {

                cal.DisplayDateStart = toDayStart;

                cal.DisplayDateEnd = toDayEnd;

            }

            else

            {

                MessageBox.Show("시작일이 종료일보다 클 수 없습니다.");

            }

        }

    }

}

 


데모는 Silverlight 2.0 RC0을 기준으로 작성되었으며 이전버전의 런타임에서는 보이지 않거나 다르게 보일 수 있습니다.


댓글