如何禁用Telerik RadDatePicker中的手动输入

时间:2014-08-02 04:45:13

标签: c# wpf telerik raddatepicker

我正在使用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,但没有帮助。

5 个答案:

答案 0 :(得分:2)

PreviewKeyDown事件完全存在于此类事物中。

private void spacebarHandler_PreviewKeyDown(object sender, KeyEventArgs e)
 {
if (e.Key == Key.Space)
    e.Handled = true;
}

答案 1 :(得分:0)

订阅KeyDown活动:

<telerik:RadDatePicker KeyDown="StartDate_OnKeyDown" />

然后&#34;处理&#34;所有键,有效地禁止用户输入任何内容:

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

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

答案 2 :(得分: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>

答案 3 :(得分:0)

有一个解决此问题的简便方法。

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

<telerik:RadDatePicker runat="server" ID="rdpPreviousDay" EnableTyping="false"></telerik:RadDatePicker>

答案 4 :(得分:-1)

有一个属性DateInput-ReadOnly。将其设置为true,就可以了。