You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RadDateTimePicker时间可见不可编辑,仅允许修改日期的实现方案咨询

实现RadDateTimePicker仅允许修改日期、时间固定可见不可编辑

当然能实现这个效果!下面给你两种实用的方案,你可以根据项目场景灵活选择:

方案一:通过事件自动保留时间(最简单)

这种方式不用改控件模板,只需要在后台监听日期变更事件,把原来的时间部分“粘”到新选的日期上就行。

第一步:给控件绑定事件并设置初始值

先在XAML里给你的RadDateTimePicker加上事件绑定,同时设置好初始的日期时间:

<telerik:RadDateTimePicker x:Name="MyDateTimePicker" 
                           Margin="0,0,10,0" 
                           Grid.Column="0" 
                           Grid.ColumnSpan="2"
                           SelectedDateChanged="MyDateTimePicker_SelectedDateChanged"
                           SelectedDate="2017-03-18T10:30:00"/>

第二步:后台处理日期变更

在代码里写事件逻辑,提取原时间,拼到新日期上:

private void MyDateTimePicker_SelectedDateChanged(object sender, Telerik.Windows.Controls.SelectedDateChangedEventArgs e)
{
    // 首次加载或者没有新选择的日期时直接返回
    if (e.NewSelectedDate == null || e.OldSelectedDate == null) return;

    // 把原来的时间部分拆出来
    var originalTime = e.OldSelectedDate.Value.TimeOfDay;
    // 组合新日期+旧时间
    var updatedDateTime = new DateTime(
        e.NewSelectedDate.Value.Year,
        e.NewSelectedDate.Value.Month,
        e.NewSelectedDate.Value.Day,
        originalTime.Hours,
        originalTime.Minutes,
        originalTime.Seconds
    );

    // 临时取消事件绑定,避免递归触发
    MyDateTimePicker.SelectedDateChanged -= MyDateTimePicker_SelectedDateChanged;
    MyDateTimePicker.SelectedDate = updatedDateTime;
    MyDateTimePicker.SelectedDateChanged += MyDateTimePicker_SelectedDateChanged;
}

这样用户选完新日期后,时间会自动回到10:30,就算用户手动输入时间,这个逻辑也会把时间纠正回去,完全符合你的需求。

方案二:自定义模板从UI层面禁用时间编辑

如果你想彻底让时间部分不能被点击/输入,就可以自定义控件模板,把时间选择器直接禁用。

你可以用Blend工具提取RadDateTimePicker的默认模板,然后找到模板里的PART_TimePicker控件,给它加上IsEnabled="False":

<telerik:RadTimePicker x:Name="PART_TimePicker"
                       IsEnabled="False"
                       <!-- 其他原有属性保持不变 -->/>

这样时间选择区域就会变成不可交互状态,用户只能操作日期选择部分,时间会一直显示初始的10:30。

小提示

  • 用方案一的话,一定要确保初始的SelectedDate已经设置了正确的时间值,不然后续没有可以保留的时间基准。
  • 方案二更适合完全不想让用户碰时间的场景,从根源上阻止时间修改;方案一则更灵活,允许用户临时输入时间但最终会被纠正回去。

内容的提问来源于stack exchange,提问作者Stefano Aquila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:30:13