只需要两步:
1.禁掉输入法:
<Window x:Class="WpfModelViewApplication1.Views.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCore"
Title="Main Window" Height="400" Width="800">
<Grid x:Name="grid1">
<TextBox x:Name="tb" Width="100" HorizontalAlignment="Right" Margin="0,164,122,128" input:InputMethod.IsInputMethodEnabled="False"/>
</Grid>
</Window>
第二步 采用正则表达式:
<Window x:Class="WpfModelViewApplication1.Views.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCore"
Title="Main Window" Height="400" Width="800">
<Grid x:Name="grid1">
<TextBox x:Name="tb" Width="100" HorizontalAlignment="Right" Margin="0,164,122,128" PreviewTextInput="tb_PreviewTextInput" input:InputMethod.IsInputMethodEnabled="False"/>
</Grid>
</Window>
cs后台代码:

//using System.Text.RegularExpressions;
private void tb_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
Regex re = new Regex("[^0-9.-]+");
e.Handled = re.IsMatch(e.Text);
}

本文介绍如何在WPF应用中禁用输入法并使用正则表达式限制TextBox输入,仅允许数字和特定字符,通过XAML属性及C#后台代码实现。
2711

被折叠的 条评论
为什么被折叠?



