问题:Handled是干什么用的,如何限制控件对应事件操作?
解答:Handled是指控件路由是否会生效
举个栗子:比如我们输入框不想触发输入效果,那么我们需要将对应的Handled设置为true即可
实战示例:
限制输入框只能输入数字:
第一步:TextBox加入InputMethod.IsInputMethodEnabled="false"标记为输入框只能输入字母数字等,不能输入汉字
第二步:在TextBox加入PreviewTextInput事件,并且在事件里面进行正则表达式赛选
如图:
<TextBox
Height="40"
InputMethod.IsInputMethodEnabled="false"
PreviewTextInput="TextBox_PreviewTextInput" />
private void TextBox_PreviewTextInput(object sender,
System.Windows.Input.TextCompositionEventArgs e)
{
Regex re = new Regex(@"[^0-9|\-|\.]");
e.Handled = re.IsMatch(e.Text);
}
其中Regex是正则表达式的类,这时需要注意的是 我们刚刚讲到的Handled 我们需要用到IsMatch方法,代表我们输入的内容是否符合我们的正则表达式,如果符合返回True 这个时候我们可以灵活的设置Handled 当Handled设置为True就代表取消当前操作也就是达到限制文本筛选条件