我希望为 WPF 日期选择器控件添加掩码。我发现 DatePickerTextBox 无法进一步扩展。
因此,我决定为其添加交互行为。我使用以下代码实现:
掩码日期选择器类:
public class MaskedDatePicker : DatePicker
{
}
我创建了一个类似下面的附加行为:
public class DatePickerTextBoxInputMaskBehavior : Behavior<DatePickerTextBox>
{
}
现在,在模板中我添加了这个行为:
<DatePickerTextBox x:Name="PART_TextBox"
Grid.Row="0"
Grid.Column="0"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
Focusable="{TemplateBinding Focusable}"
Foreground="{TemplateBinding Foreground}">
<i:Interaction.Behaviors>
<cleanPoc:DatePickerTextBoxInputMaskBehavior />
</i:Interaction.Behaviors>
</DatePickerTextBox>
现在每次我从日期选择器打开日历时,应用程序会冻结,因为 DatePickerTextBoxInputMaskBehavior 中的文本更改被递归触发。 有什么处理方法吗?