是否可以控制扩展 Wpf 工具包的 MaskedTextBox 控件的显示?
Is it possible to control the display of the Extended Wpf Toolkit's MaskedTextBox control?
我在用户控件上有一个扩展 WPF 工具包的 MaskedTextBox 控件,它绑定到一个 int。 int 的值不能超过两位数,但只能是一位数,这就是我使用 MaskedTextBox 的原因。但是我们在创建新记录时显示此控件时遇到问题。目前,在创建新记录时,它显示“00”。我们只希望它显示一个零,如“_0”。我一直在关注 its GitHub page 对 MaskedTextBox 的描述。这是我的第一次尝试:
<tk:MaskedTextBox x:Name="MaxProficienciesMaskedTextBox"
Style="{StaticResource LeftAlignMaskedTextBoxStyle}"
Value="{Binding MaxProficiencies}"
Mask="#0"
ValueDataType="{x:Type System:Int32}"
IsEnabled="{Binding IsMaxProficienciesEnabled}" />
我认为,通过查看 GitHub 页面,它会给我“_0”。它没有,它为新记录显示“00”。同样,我尝试了“00”和“90”的掩码值。两者都显示“00”表示新记录。
是否可以显示带有“_0”的新记录?如果可以,怎么做?
您总是可以处理 TextChanged
事件:
private void MaskedTextBox_TextChanged_1(object sender, TextChangedEventArgs e)
{
TextChange textChange = e.Changes.FirstOrDefault();
TextBox textBox = (TextBox)sender;
if (textChange != null && textChange.AddedLength == 2 && textChange.RemovedLength == 0 && textBox.Text == "00")
textBox.Text = "_0";
}
XAML:
<tk:MaskedTextBox Mask="00" Value="0" ValueDataType="{x:Type System:Int32}"
TextChanged="MaskedTextBox_TextChanged_1"/>
我在用户控件上有一个扩展 WPF 工具包的 MaskedTextBox 控件,它绑定到一个 int。 int 的值不能超过两位数,但只能是一位数,这就是我使用 MaskedTextBox 的原因。但是我们在创建新记录时显示此控件时遇到问题。目前,在创建新记录时,它显示“00”。我们只希望它显示一个零,如“_0”。我一直在关注 its GitHub page 对 MaskedTextBox 的描述。这是我的第一次尝试:
<tk:MaskedTextBox x:Name="MaxProficienciesMaskedTextBox"
Style="{StaticResource LeftAlignMaskedTextBoxStyle}"
Value="{Binding MaxProficiencies}"
Mask="#0"
ValueDataType="{x:Type System:Int32}"
IsEnabled="{Binding IsMaxProficienciesEnabled}" />
我认为,通过查看 GitHub 页面,它会给我“_0”。它没有,它为新记录显示“00”。同样,我尝试了“00”和“90”的掩码值。两者都显示“00”表示新记录。
是否可以显示带有“_0”的新记录?如果可以,怎么做?
您总是可以处理 TextChanged
事件:
private void MaskedTextBox_TextChanged_1(object sender, TextChangedEventArgs e)
{
TextChange textChange = e.Changes.FirstOrDefault();
TextBox textBox = (TextBox)sender;
if (textChange != null && textChange.AddedLength == 2 && textChange.RemovedLength == 0 && textBox.Text == "00")
textBox.Text = "_0";
}
XAML:
<tk:MaskedTextBox Mask="00" Value="0" ValueDataType="{x:Type System:Int32}"
TextChanged="MaskedTextBox_TextChanged_1"/>