کنترل Calendar در WPF
Calendar کنترلی است که کاربر را قادر می سازد تا با استفاده از یک تقویم بصری نمایش داده شده، یک تاریخ را انتخاب کند. همچنین این کنترل قابلیت تغییر حالت با استفاده از ماوس و کلیدهای را نیز دارد. در تصویر زیر می توانید سلسله مراتب ارث بری کلاس Calendar را مشاهده کنید.
خاصیت های پرکاربرد
در جدول زیر می توانید خاصت های پر استفاده مربوط به کنترل Calendar را به همراه توضیح مختصری در مورد هر کدام مشاهده کنید.
ردیف | توضیحات |
1 | BlackoutDates مجموعه ای از تاریخ ها را که به صورت غیرقابل انتخاب شدن هستند را برمیگرداند. |
2 | CalendarButtonStyle استایل مربوط به CalendarButton که در داخل قالب کنترل Calendar استفاده شده است را مشخص می کند. |
3 | CalendarDayButtonStyle استایل مربوط به CalendarDayButton که در داخل قالب کنترل Calendar استفاده شده است را مشخص می کند. |
4 | CalendarItemStyle استایل مربوط به CalendarItem که در داخل قالب کنترل Calendar استفاده شده است را مشخص می کند. |
5 | DisplayDate به منظور گرفتن و یا تنظیم مقدار تاریخ نمایش داده شده استفاده می شود. |
6 | DisplayDateEnd به منظور گرفتن و یا تنظیم آخرین تاریخ قابل انتخاب در رنج تاریخ Calendar استفاده می شود. |
7 | DisplayDateStart به منظور گرفتن و یا تنظیم اولین تاریخ قابل انتخاب در رنج تاریخ Calendar استفاده می شود. |
8 | DisplayMode به منظور گرفتن و یا تنظیم حالت نمایش تقویم استفاده می شود و می تواند به صورت Month، Year و یا Decade باشد. |
9 | FirstDayOfWeek به منظور گرفتن و یا تنظیم اولین روز هفته استفاده می شود. برای مثال در ایران اولین روز هفته شنبه است. |
10 | IsTodayHighlighted یک مقدار بولی است و مشخص می کند که آیا تاریخ جاری باید به صورت برجسته نمایش داده شود یا خیر. |
11 | SelectedDate به منظور گرفتن و یا تنظیم تاریخ انتخاب شده در کنترل Calendar استفاده می شود. |
12 | SelectedDates تاریخ های انتخاب شده را به صورت یک مجموعه برمیگرداند. |
13 | SelectionMode به منظور گرفتن و یا تنظیم حالت انتخاب تاریخ در کنترل Calendar استفاده می شود. به صورت پیشفرض SingleDate است. |
متدهای پرکاربرد
در جدول زیر می توانید متدهای پر استفاده مربوط به کنترل Calendar را به همراه توضیح مختصری در مورد هر کدام مشاهده کنید.
ردیف | توضیحات |
1 | OnApplyTemplate درخت بصری (Visual Tree) مربوط به کنترل Calendar را قبل از اینکه نمایش داده شود و یا زمانی قالب آن تغییر یابد، ایجاد می کند. |
2 | ToString تاریخ انتخاب شده را به رشته تبدیل می کند. |
رویدادهای پرکاربرد
در جدول زیر می توانید رویدادهای پر استفاده مربوط به کنترل Calendar را به همراه توضیح مختصری در مورد هر کدام مشاهده کنید.
ردیف | توضیحات |
1 | DisplayDateChanged زمانی که مقدار خاصیت DisplayDate تغییر یابد، این رویداد رخ می دهد. |
2 | DisplayModeChanged زمانی که مقدار خاصیت DisplayMode تغییر یابد، این رویداد رخ می دهد. |
3 | SelectedDatesChanged زمانی که مقدار خاصیت SelectedDates تغییر یابد، این رویداد رخ می دهد. |
4 | SelectionModeChanged زمانی که مقدار خاصیت SelectionMode تغییر یابد، این رویداد رخ می دهد. |
مثال
در ادامه برای درک بهتر موارد گفته شده یک مثال ساده ایجاد خواهیم کرد. ابتدا یک پروژه WPF ایجاد کنید و سپس از بخش Toolbox یک کنترل Calendar را بر روی صفحه طراحی قرار دهید. حال وارد بخش کدهای XAML شوید و کد مربوط به Calendar را به صورت زیر تغییر دهید.
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 31 32 33 34 35 36 37 38 39 | <Window x:Class = "WPFCalenderControl.MainWindow" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local = "clr-namespace:WPFCalenderControl" mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604"> <Grid> <Calendar Margin = "20" SelectionMode = "MultipleRange" IsTodayHighlighted = "false" DisplayDate = "1/1/2015" DisplayDateEnd = "1/31/2015" SelectedDatesChanged = "Calendar_SelectedDatesChanged" xmlns:sys = "clr-namespace:System;assembly = mscorlib"> <Calendar.BlackoutDates> <CalendarDateRange Start = "1/2/2015" End = "1/4/2015"/> <CalendarDateRange Start = "1/9/2015" End = "1/9/2015"/> <CalendarDateRange Start = "1/16/2015" End = "1/16/2015"/> <CalendarDateRange Start = "1/23/2015" End = "1/25/2015"/> <CalendarDateRange Start = "1/30/2015" End = "1/30/2015"/> </Calendar.BlackoutDates> <Calendar.SelectedDates> <sys:DateTime>1/5/2015</sys:DateTime> <sys:DateTime>1/12/2015</sys:DateTime> <sys:DateTime>1/14/2015</sys:DateTime> <sys:DateTime>1/13/2015</sys:DateTime> <sys:DateTime>1/15/2015</sys:DateTime> <sys:DateTime>1/27/2015</sys:DateTime> <sys:DateTime>4/2/2015</sys:DateTime> </Calendar.SelectedDates> <Calendar.Background> <LinearGradientBrush EndPoint = "0.5,1" StartPoint = "0.5,0"> <GradientStop Color = "#FFE4EAF0" Offset = "0" /> <GradientStop Color = "#FFECF0F4" Offset = "0.16" /> <GradientStop Color = "#FFFCFCFD" Offset = "0.16" /> <GradientStop Color = "#FFD80320" Offset = "1" /> </LinearGradientBrush> </Calendar.Background> </Calendar> </Grid> </Window> |
کدهای C# مربوط به مثال فوق:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | using System; using System.Windows; using System.Windows.Controls; namespace WPFCalenderControl { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e) { var calendar = sender as Calendar; if (calendar.SelectedDate.HasValue) { DateTime date = calendar.SelectedDate.Value; this.Title = date.ToShortDateString(); } } } } |
زمانی که پروژه را کامپایل و اجرا کنید، خروجی زیر را مشاهده خواهید کرد که در آن برخی از تاریخ ها به صورت انتخاب شده هستند و برخی دیگر هم به صورت غیرقابل انتخاب شدن (Backout Dates).
اگر تاریخ دیگری را انتخاب کنید خروجی مانند نمونه زیر تغییر خواهد کرد.
هیچ نظری ثبت نشده است