1

我正在使用 Telerik RadDatePicker,我想禁用用户输入,但他们应该能够从日历中进行选择。

<telerik:RadDatePicker Culture="{Binding GetLanguage}" x:Name="startDate" 
                       Margin="0,5,0,5" HorizontalAlignment="Left"
                       VerticalAlignment="Center" Grid.Column="1" TabIndex="2"
                       MinWidth="120" Width="120" Height="Auto" MaxHeight="25"
                       KeyDown="filterDate_KeyDown" >
</telerik:RadDatePicker>

我用过KeyDown,但没有帮助。

4

5 回答 5

2

PreviewKeyDown 事件正是针对这类事情而存在的。

private void spacebarHandler_PreviewKeyDown(object sender, KeyEventArgs e)
 {
if (e.Key == Key.Space)
    e.Handled = true;
}
于 2014-08-02T06:48:25.847 回答
1

这个问题有一个简单的解决方案。

添加该属性EnableTyping="false"可防止用户键入。

<telerik:RadDatePicker runat="server" ID="rdpPreviousDay" EnableTyping="false"></telerik:RadDatePicker>
于 2019-05-30T12:34:32.913 回答
0

订阅KeyDown活动:

<telerik:RadDatePicker KeyDown="StartDate_OnKeyDown" />

然后“处理”所有键,从而有效地禁止用户输入任何内容:

private void StartDate_OnKeyDown(object sender, KeyEventArgs e)
{
    e.Handled = true;
}

有趣的是, 上有一个IsReadOnly属性RadDatePicker,它禁用DatePickerTextBox并且仍然允许用户查看日历,但不幸的是它也阻止了用户实际在日历中进行选择。它使您看起来可以选择一个日期,但实际上并没有设置该SelectedDate属性。

于 2014-08-02T05:14:23.580 回答
0

设置 IsHitTestVisible=False,问题解决。

    <telerik:RadDatePicker                          
    SelectedDate="{Binding ValidFrom,Mode=TwoWay}" >
                <telerik:RadDatePicker.Resources>
                    <Style TargetType="telerik:RadWatermarkTextBox">
                        <Setter Property="IsHitTestVisible" Value="False" />                          
                    </Style>
                </telerik:RadDatePicker.Resources>

于 2017-09-18T12:04:05.147 回答
-1

有一个属性DateInput-ReadOnly。将其设置为true,您应该一切顺利。

于 2018-09-20T16:02:24.900 回答