DatePicker birthDatePicker = new DatePicker()
Header = "Date of birth"
DatePicker
使用 可让用户输入日期值。 用户使用 ComboBox 选择的月份、天和年值选取日期。 可以通过各种方式自定义 以 DatePicker
适合你的应用。
有关详细信息、设计指南和代码示例,请参阅 日期选取器。
支持 DatePicker
Windows 支持的每个日历系统。 这些日历均在 Windows.Globalization.CalendarIdentifiers 类中指定。 为 DatePicker
应用的默认语言使用正确的日历,或者你可以将 CalendarIdentifier 属性设置为使用特定的日历系统。
默认情况下,日期选取器按年、月、日的顺序显示日期。 如果你的日期选取器方案不需要所有字段,你可隐藏不需要的字段。 若要隐藏字段,请将其相应的 字段Visible 属性设置为 false
。 有关详细信息,请参阅 DayVisible、 MonthVisible 和 YearVisible 属性。
DatePicker
中每个 ComboBox
的字符串内容是通过 DateTimeFormatter 创建的。 可以使用格式 模板 或 格式模式 的字符串来指定格式。 有关详细信息,请查看 DayFormat、MonthFormat 和 YearFormat 属性。
日期选取器控件同时包含 Date / DateChanged 和 SelectedDate / SelectedDateChanged API。 这两者的区别是,Date
不可为 null,而 SelectedDate
可以为 null。
SelectedDate
的值用于填充日期选取器,它默认为 null
。 如果 SelectedDate
是 null
,则 Date
属性设置为 1600/12/31;否则,Date
值与 SelectedDate
值同步。 当 SelectedDate
是 null
时,不设置选取器,它显示字段名称而不是日期。
若要在应用中使用日期值,通常使用对 属性的数据绑定 SelectedDate
,或处理 SelectedDateChanged
事件。
可设置 MinYear 和 MaxYear 属性来限制选取器中的日期值。 默认情况下,MinYear
设置为比当前日期减去 100 年,MaxYear
设置为当期日期加 100 年。
如果仅设置了 MinYear
或 MaxYear
,则需要确保有效值范围介于你设置的日期和另一日期的默认值之间;否则,选取器中将没有日期可供选择。 例如,仅设置 yearDatePicker.MaxYear = new DateTimeOffset(new DateTime(900, 1, 1));
会生成一个具有 MinYear
默认值的无效日期范围。
初始化日期值
日期属性不可设置为 XAML 特性字符串,因为 Windows 运行时 XAML 解析器不具有用于将字符串转换为日期(作为 DateTime / DateTimeOffset 对象)的转换逻辑。
此示例演示如何在代码中设置 SelectedDate
属性。
<DatePicker x:Name="myDatePicker"/>
public MainPage()
this.InitializeComponent();
myDatePicker.SelectedDate = new DateTimeOffset(new DateTime(1950, 1, 1));
DateTime 和日历值
DatePicker 中使用的日期对象具有不同的表示形式,具体取决于编程语言。 C# 和 Visual Basic 使用 System.DateTimeOffset 结构,它是 .NET 的一部分。 Visual C++ 组件扩展 (C++/CX) 使用 Windows::Foundation::D ateTime 结构。 一个相关的概念是 Calendar 类,它影响日期在上下文中的解释方式。 所有 Windows 运行时应用都可以使用 Windows.Globalization.Calendar 类。 C# 和 Visual Basic 应用还可以使用 System.Globalization.Calendar 类,该类具有非常类似的功能。 (Windows 运行时 应用可以使用基本 .NET Calendar 类,但不能使用特定的实现,例如 GregorianCalendar.)
.NET 还支持名为 DateTime 的类型,该类型可隐式转换为 DateTimeOffset。 因此,你可能会在 .NET 代码中看到用于设置真正 DateTimeOffset 的值的“DateTime”类型。 有关 DateTime 和DateTimeOffset 之间的差异的详细信息,请参阅 DateTimeOffset 中的备注。
控件样式和模板
可以修改默认 的 Style 和 ControlTemplate ,为控件提供唯一的外观。 有关修改控件的样式和模板的信息,请参阅 设置控件样式。 文件中包含 generic.xaml
定义控件外观的默认样式、模板和资源。 出于设计目的, generic.xaml
可通过 SDK 或 NuGet 包安装在本地使用。
建议) (WinUI 样式 : 有关 WinUI 中更新的样式,请参阅 \Users\<username>\.nuget\packages\microsoft.ui.xaml\<version>\lib\uap10.0\Microsoft.UI.Xaml\Themes\generic.xaml
。
非 WinUI 样式: 有关内置样式,请参阅 %ProgramFiles(x86)%\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\<SDK version>\Generic\generic.xaml
。
如果自定义安装,位置可能会有所不同。 不同版本的 SDK 的样式和资源可能具有不同的值。
XAML 还包括可用于在不修改控件模板的情况下修改不同视觉状态下控件颜色的资源。 修改这些资源优先于设置 背景 和 前台等属性。 有关详细信息,请参阅 XAML 样式一文的轻量级样式部分。 从 Windows 10 版本 1607 (SDK 14393) 开始提供轻量级样式资源。
版本历史记录
Windows 版本
SDK 版本
获取与此对象关联的 CoreDispatcher 。 CoreDispatcher 表示可以访问 UI 线程上的 DependencyObject 的工具,即使代码是由非 UI 线程启动的。
(继承自 DependencyObject)
获取或设置文本和其他 UI 元素在控制其布局的任何父元素中的流动方向。 此属性可以设置为 LeftToRight 或 RightToLeft。 在任何元素上将 FlowDirection 设置为 RightToLeft 会将对齐方式设置为右对齐,将阅读顺序设置为从右到左,并将控件的布局设置为从右到左流动。
(继承自 FrameworkElement)
获取或设置 UIElement (使用的 UI 主题及其子元素) 用于资源确定。 使用 RequestedTheme 指定的 UI 主题可以替代应用级 RequestedTheme。
(继承自 FrameworkElement)
对于Windows 10 创意者更新 (内部版本 10.0.15063) 及更新版本,TabFocusNavigation 属性在 UIElement 基类上可用,以包括不使用 ControlTemplate 的选项卡序列中的对象。
(继承自 Control)
为指定的路由事件添加路由事件处理程序,并将该处理程序添加到当前元素的处理程序集合中。 将 handledEventsToo 指定为 true ,以调用提供的处理程序,即使在其他位置处理事件也是如此。
(继承自 UIElement)
汇报 UIElement 的 DesiredSize。 通常,为其布局子级实现自定义布局的对象从其自己的 MeasureOverride 实现中调用此方法,以形成递归布局更新。
(继承自 UIElement)
每当应用程序代码或内部进程 (例如重新生成布局传递) 调用 ApplyTemplate 时调用。 简单来说,这意味着在 UI 元素在应用中显示之前调用 方法。 重写此方法以影响类的默认模板后逻辑。
(继承自 FrameworkElement)
在应用中处理 键盘快捷方式 (或快捷键) 之前调用。 每当应用程序代码或内部进程调用 ProcessKeyboardAccelerators 时调用。 重写此方法以影响默认加速器处理。
(继承自 UIElement)
在释放之前启动 按下 操作的指针设备时发生,同时在此元素中。 请注意, 不保证按下 操作的结尾会触发 PointerReleased 事件;可能会触发其他事件。 有关详细信息,请参阅备注。
(继承自 UIElement)