在WPF种使用WinForm中的时间控件 DatePicker
首先添加程序集的引用:
System.Winows.Forms
WindowsFormsIntegration
在XAML中添加引用
xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
在UI中放置一个默认的控件
<DatePicker DockPanel.Dock="Top" Margin="3"></DatePicker>
运行效果:
默认当天是被选中的。
设置一个默认的显示日期:
<DatePicker DisplayDate="2089-01-01" DockPanel.Dock="Top" Margin="3"></DatePicker>
设置日期格式,与所在时区有关
<DatePicker SelectedDate="2999-1-1" SelectedDateFormat="Long" DockPanel.Dock="Top" Margin="3"></DatePicker>
<DatePicker SelectedDate="2999-1-1" SelectedDateFormat="Short" DockPanel.Dock="Top" Margin="3"></DatePicker>
排除日期,阻止选择
<DatePicker x:Name="dp1" DockPanel.Dock="Top" Margin="3">
<DatePicker.BlackoutDates>
<CalendarDateRange Start="2022-2-2" End="2022-2-18"/>
<CalendarDateRange Start="2022-5-1" End="2022-5-20"/>
</DatePicker.BlackoutDates>
</DatePicker>
自动排除过期日期
<DatePicker x:Name="dp2" DockPanel.Dock="Top" Margin="3"/>
代码设置其它未来的日期不可选择:
//过去所有日期和下一周,将都不能被选择
dp2.BlackoutDates.AddDatesInPast();
dp2.BlackoutDates.Add(new CalendarDateRange(DateTime.Now, DateTime.Now.AddDays(7)));