WPF - DatePicker 日期选择器控件

DatePicker 是一个允许用户选择日期值的控件。 用户通过使用组合框选择月、日和年值来选择日期。 DatePicker类的层次继承如下−

日期选择器的层次结构

DatePicker常用属性

序号 属性和描述
1

CalendarIdentifier

获取或设置要使用的日历系统。

2

CalendarIdentifierProperty

获取 CalendarIdentifier 依赖项属性的标识符。

3

Date

获取或设置日期选择器中当前设置的日期。

4

DateProperty

获取日期依赖属性的标识符。

5

DayFormat

获取或设置日期值的显示格式。

6

DayFormatProperty

获取 DayFormat 依赖项属性的标识符。

7

DayVisible

获取或设置一个值,该值指示是否显示日期选择器。

8

DayVisibleProperty

获取 DayVisible 依赖属性的标识符。

9

Header

获取或设置控件标头的内容。

10

HeaderProperty

标识标头依赖属性。

11

HeaderTemplate

获取或设置用于显示控件标头内容的 DataTemplate。

12

HeaderTemplateProperty

标识 HeaderTemplate 依赖属性。

13

MaxYear

获取或设置可供挑选的最大公历年份。

14

MaxYearProperty

获取 MaxYear 依赖属性的标识符。

15

MinYear

获取或设置可供挑选的最小公历年份。

16

MinYearProperty

获取 MinYear 依赖项属性的标识符。

17

MonthFormat

获取或设置月份值的显示格式。

18

MonthFormatProperty

获取 MonthFormat 依赖项属性的标识符。

19

MonthVisible

获取或设置一个值,该值指示是否显示月份选择器。

20

MonthVisibleProperty

获取 MonthVisible 依赖属性的标识符。

21

Orientation

获取或设置一个值,该值指示日、月和年选择器是水平还是垂直堆叠。

22

OrientationProperty

获取方向依赖属性的标识符。

23

YearFormat

获取或设置年份值的显示格式。

24

YearFormatProperty

获取 YearFormat 依赖项属性的标识符。

25

YearVisible

获取或设置一个值,该值指示是否显示年份选择器。

26

YearVisibleProperty

获取 YearVisible 依赖项属性的标识符。

DatePicker类中常用的事件

序号 事件和描述
1

DateChanged

日期值更改时发生。

2

DragEnter

当输入系统报告以此元素为目标的基础拖动事件时发生。 (继承自UIElement)

3

DragLeave

当输入系统报告以此元素为原点的基础拖动事件时发生。 (继承自UIElement)

4

DragOver

当输入系统报告将此元素作为潜在放置目标的基础拖动事件时发生。 (继承自UIElement)

5

DragStarting

启动拖动操作时发生。 (继承自UIElement)

6

GotFocus

当 UIElement 获得焦点时发生。 (继承自UIElement)

7

Holding

当在此元素的点击测试区域上发生未处理的保持交互时发生。 (继承自UIElement)

8

IsEnabledChanged

当 IsEnabled 属性更改时发生。 (继承自Control)

9

KeyDown

当 UIElement 具有焦点时按下键盘按键时发生。 (继承自UIElement)

10

KeyUp

在 UIElement 具有焦点时释放键盘按键时发生。 (继承自UIElement)

11

LostFocus

当 UIElement 失去焦点时发生。 (继承自UIElement)

DatePicker类中常用的方法

序号 方法及描述
1

ClearValue

清除依赖属性的本地值。 (继承自DependencyObject)

2

FindName

检索具有指定标识符名称的对象。 (继承自FrameworkElement)

3

OnApplyTemplate

每当应用程序代码或内部进程(例如重建布局过程)调用ApplyTemplate时调用。 简而言之,这意味着该方法在 UI 元素显示在应用程序中之前调用。 重写此方法以影响类的默认后模板逻辑。 (继承自FrameworkElement)

4

OnDragEnter

在 DragEnter 事件发生之前调用。 (继承自Control)

5

OnDragLeave

在 DragLeave 事件发生之前调用。 (继承自Control)

6

OnDragOver

在 DragOver 事件发生之前调用。 (继承自Control)

7

OnDrop

在 Drop 事件发生之前调用。 (继承自Control)

8

OnGotFocus

在 GotFocus 事件发生之前调用。 (继承自Control)

9

OnKeyDown

在 KeyDown 事件发生之前调用。 (继承自Control)

10

OnKeyUp

在 KeyUp 事件发生之前调用。 (继承自Control)

11

OnLostFocus

在 LostFocus 事件发生之前调用。 (继承自Control)

12

SetBinding

使用提供的绑定对象将绑定附加到 FrameworkElement。 (继承自FrameworkElement)

示例

  • 让我们创建一个名为 WPFDatePickerControl 的新 WPF 项目。

  • 从工具箱中拖动一个 DatePicker。

  • 以下示例演示如何创建 DatePicker 控件。

  • 当您单击 DatePicker 控件中的任何日期时,程序将使用该日期更新标题。

  • 以下 XAML 代码创建一个具有某些属性和单击事件的 DatePicker。

<Window x:Class = "WPFDatePickerControl.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   Title = "MainWindow" Height = "350" Width = "604"> 
	
   <Grid> 
      <DatePicker HorizontalAlignment = "Center" Margin = "10,10,0,0" 
         VerticalAlignment = "Top" SelectedDateChanged = "DatePicker_SelectedDateChanged"/> 
   </Grid> 
	
</Window> 

以下是 DatePicker_SelectedDateChanged 事件的 C# 实现

using System; 
using System.Windows; 
using System.Windows.Controls;  

namespace WPFDatePickerControl { 

   public partial class MainWindow : Window { 
	
      public MainWindow() { 
         InitializeComponent(); 
      } 
		
      private void DatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e) { 
         var picker = sender as DatePicker;  
         DateTime? date = picker.SelectedDate;
			
         if (date == null) { 
            this.Title = "No date"; 
         } 
         else { 
            this.Title = date.Value.ToShortDateString(); 
         } 
      } 
   }
	
}

当您编译并执行上述代码时,将产生以下窗口。

日期选择器的输出

我们建议您执行上面的示例代码并尝试 DatePicker 类的一些其他属性和事件。

❮ wpf_controls.html