1.DatePicker 控件介绍

  • 日期控件:下拉部分—可视化的日历控件

  • 自定义格式:SelectedDate --代码修改—行不通

  • 自定义Style,template来实现自定义

2.具体案例

<Grid>
    <!--IsTodayHighlighted 默认 True  IsDropDownOpen 默认false FirstDayOfWeek 默认值 Sunday
    DisplayDate 要显示的时间 并不显示在日期中 SelectedDateFormat 默认 Short
    -->
    <DatePicker Name="dpDate" HorizontalAlignment="Left" Margin="85,80,0,0" VerticalAlignment="Top" Height="27" Width="183"  DisplayDateStart="2020-04-10" DisplayDateEnd="2020-5-31" FirstDayOfWeek="Monday" IsDropDownOpen="False" IsTodayHighlighted="False" SelectedDate="2020-5-5" SelectedDateFormat="Short" SelectedDateChanged="DpDate_SelectedDateChanged" >
        <DatePicker.Resources>
            <Style TargetType="DatePickerTextBox" >
                <Setter Property="BorderThickness" Value="0"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <TextBox x:Name="PART_TextBox" Text="{Binding Path=SelectedDate, StringFormat={}{0:yyyy-MM-dd}, RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" />
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DatePicker.Resources>
    </DatePicker>

</Grid>
private void DpDate_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
    MessageBox.Show(dpDate.Text);
    DateTime dt = Convert.ToDateTime(dpDate.Text);
    string date = dt.ToString("yyyy-MM-dd");//将选择的日期格式化
    MessageBox.Show(dpDate.SelectedDate.Value.ToString());
}