读书人

silverlight Calendar 选择月份的时候

发布时间: 2013-01-25 15:55:30 作者: rapoo

silverlight Calendar 选择月份的时候能不能不进选择日期的
silverlight Calendar 选择月份的时候能不能不进选择日期的解决方案

这个点击月份的时候就自动进去选择几号的了
能不能到选择月份就终止了?
[解决办法]
楼主可以修改Silverlight Toolkit代码实现,创建一个新的依赖属性实现。
可以参考以下代码可以实现Calendar只选月份:


public CalendarMode CalendarMode
{
get { return (CalendarMode)GetValue(CalendarModeProperty); }
set { SetValue(CalendarModeProperty, value); }
}

public static readonly DependencyProperty CalendarModeProperty =
DependencyProperty.Register(
"CalendarMode",
typeof(CalendarMode),
typeof(DatePicker),
new PropertyMetadata(OnCalendarModeChanged));

private static void OnCalendarModeChanged(DependencyObject d,
DependencyPropertyChangedEventArgs e)
{
DatePicker dp = d as DatePicker;

// get the new value into a calendar mode variable.
CalendarMode cm = (CalendarMode)e.NewValue;

if (dp != null)
{
dp._calendar.DisplayMode = cm;
}
}


private void InitializeCalendar()
{
_calendar = new Calendar();
_calendar.DayButtonMouseUp += new MouseButtonEventHandler(Calendar_DayButtonMouseUp);
_calendar.DisplayDateChanged += new EventHandler<CalendarDateChangedEventArgs>
(Calendar_DisplayDateChanged);
_calendar.SelectedDatesChanged += new EventHandler<SelectionChangedEventArgs>
(Calendar_SelectedDatesChanged);
_calendar.MouseLeftButtonDown += new MouseButtonEventHandler
(Calendar_MouseLeftButtonDown);
_calendar.KeyDown += new KeyEventHandler(Calendar_KeyDown);
_calendar.SelectionMode = CalendarSelectionMode.SingleDate;
_calendar.SizeChanged += new SizeChangedEventHandler(Calendar_SizeChanged);
_calendar.IsTabStop = true;
#region Juan Mejia - Modification
_calendar.DisplayMode = this.CalendarMode;
_calendar.DisplayModeChanged += new EventHandler<CalendarModeChangedEventArgs>
(Calendar_DisplayModeChanged);
#endregion


}


private void Calendar_DisplayModeChanged(object sender, CalendarModeChangedEventArgs e)
{
if (this.CalendarMode == CalendarMode.Year)
{
if (_calendar.DisplayMode == CalendarMode.Month)
{
_calendar.DisplayMode = CalendarMode.Year;

if (_popUp.IsOpen)
{
this.SelectedDate = _calendar.SelectedMonth;
this._popUp.IsOpen = false;
}
}
}
}

<sdk:DatePicker Name="datepicker1"
Height="23"
Width="150"
SelectedDateFormat="MonthYear"
CalendarMode="Year" />



源代码下载:
http://bbs.silverlightchina.net/forum.php?mod=viewthread&tid=14225&extra=

也可以参考学习以下教程:
http://silverlightchina.net/html/tips/2010/0101/516.html


http://silverlightchina.net/html/tips/2010/0929/2230.html

读书人网 >CAD教程

热点推荐