Wpf 编写用于格式化时间的掩码

Wpf 编写用于格式化时间的掩码,wpf,silverlight,xaml,silverlight-5.0,Wpf,Silverlight,Xaml,Silverlight 5.0,当前,如果出现类似于“1230AM”的内容,它将正确格式化并显示为 "12:30 AM" 但是如果出现类似于“830AM”的内容,它将被格式化并显示为“8:30 AM”,但我需要它显示为“08:30 AM” 我该怎么做?注意数字8之前的空格 内部建造!蒙版文本框当前使用的样式定义如下,我认为需要更改: <Style x:Key="MyTimeMaskStyle" TargetType="controls:MyMaskedTextBox" BasedOn="{StaticResource

当前,如果出现类似于
“1230AM”
的内容,它将正确格式化并显示为

"12:30 AM"
但是如果出现类似于“830AM”的内容,它将被格式化并显示为“8:30 AM”,但我需要它显示为
“08:30 AM”
我该怎么做?注意数字8之前的空格

内部建造!蒙版文本框当前使用的样式定义如下,我认为需要更改:

<Style x:Key="MyTimeMaskStyle" TargetType="controls:MyMaskedTextBox" BasedOn="{StaticResource MyMaskedTextBoxStyle}">
    <Setter Property="MaskType" Value="Standard" />
    <Setter Property="Mask" Value="##:## ll"></Setter>
    <Setter Property="Placeholder" Value=" " />
</Style>

您不能在字符串格式和掩码级别执行此操作。别再在兔子洞里浪费时间了

我建议有两种选择:

  • 找出数据加载的位置,并在加载之前对其进行按摩 进入绑定
  • 写一个转换器,做同样的事情,按摩它,并确保它 如果输入的数据的第1个字符是 空间

  • 基于,我认为您只需要更改为
    00:00 ll
    。。。但不是100%确定。不,将其更改为“83:0”。尝试将掩码中的“#”更改为“9”。@JBrooks不,将其更改为83:0听起来您需要一个转换器来修剪前导空白。或者修复数据。