【问题标题】:WPF Toolkit DateTimePicker make Time Textbox un-editableWPF Toolkit DateTimePicker 使时间文本框不可编辑
【发布时间】:2017-05-09 09:12:27
【问题描述】:

我正在尝试使日历的时间选择器的一部分具有只读文本框。因为默认情况下它允许用户输入 无效时间并抛出索引超出范围。我喜欢只允许从上下箭头选择时间并禁止在该文本框中输入。

我尝试使用TimePickerVisibilityhidden,但它隐藏了时间选择器。

【问题讨论】:

  • 您可以处理点击该特定部分的事件,然后什么也不做......?

标签: c# wpf mvvm wpftoolkit


【解决方案1】:

更新 1
我刚刚注意到您使用的是 DateTimePicker 而不是 TimePicker,
所以你需要通过这种方式将 DateTimePicker 的 TimePicker 设置为 not AllowTextInput:

    <xctk:DateTimePicker HorizontalAlignment="Left" Margin="67,200,0,0" VerticalAlignment="Top" Width="228">
        <xctk:DateTimePicker.Resources>
            <Style TargetType="{x:Type xctk:TimePicker}">
                <Setter Property="AllowTextInput" Value="False"/>
            </Style>
        </xctk:DateTimePicker.Resources>
    </xctk:DateTimePicker>

更新2
如果你想禁用所有的 TextInputs,这样用户就不能输入 Date 和 Time,你可以这样做:

<xctk:DateTimePicker HorizontalAlignment="Left" Margin="67,200,0,0" VerticalAlignment="Top" Width="228">
    <xctk:DateTimePicker.Resources>
        <Style TargetType="{x:Type xctk:DateTimePicker}">
            <Setter Property="AllowTextInput" Value="False"/>
        </Style>
        <Style TargetType="{x:Type xctk:TimePicker}">
            <Setter Property="AllowTextInput" Value="False"/>
        </Style>
    </xctk:DateTimePicker.Resources>
</xctk:DateTimePicker>

如果您将使用标准 DatePicker,则按以下方式进行相同操作。 对于标准 WPF DatePicker,您需要将 DatePickerTextBox 设置为 ReadOnly。你可以这样做:

<DatePicker HorizontalAlignment="Left" Margin="138,82,0,0" VerticalAlignment="Top">
    <DatePicker.Resources>
        <Style TargetType="DatePickerTextBox">
            <Setter Property="IsReadOnly" Value="True"/>
        </Style>
    </DatePicker.Resources>
</DatePicker>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 2021-02-03
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多