防止在 MahApp 日期选择器中添加文本?

Prevent add text in MahApp datepicker?

我试图阻止在 MahApp 日期选择器中添加文本,到目前为止我尝试的是:

<DatePicker x:Name="MyDatePicker">
        <DatePicker.Resources>
            <Style TargetType="DatePickerTextBox">
                <Setter Property="IsReadOnly" Value="True"/>
            </Style>
        </DatePicker.Resources>
    </DatePicker>

这基本上是从已经问过的问题中提取的代码,但在这种情况下上面的代码不起作用,我可以在 DatePicker.

中插入所有字符类型

我也试过 Focusable = false 但这会导致我的弹出窗口出现问题,所以我放弃了这个解决方案。还有其他想法吗?

谢谢。

I'm using also MDIX (material design in xaml) but the resource of MahApp are included

根据 Material Design styles,他们对日期选择器的文本框使用了不同样式的键(请参阅 link 后面的第 13 行和第 177 行)。只需将 x:Key="MaterialDesignDatePickerTextBox" 添加到您的 Style 声明中,您就可以开始了:

<DatePicker x:Name="MyDatePicker">
  <DatePicker.Resources>
    <Style x:Key="MaterialDesignDatePickerTextBox"
           TargetType="DatePickerTextBox"
           BasedOn="{StaticResource MaterialDesignDatePickerTextBox}">
      <Setter Property="IsReadOnly" Value="True"/>
    </Style>
  </DatePicker.Resources>
</DatePicker>

通常,如果您从某处获取样式资源,但有些东西没有按您预期的那样工作,您应该做的第一件事就是查阅 Xaml 以了解这些样式。他们很有可能在某种程度上偏离了正常的惯例。