<?xml version="1.0" encoding="UTF-8"?>
今天调试自己写的WPF的Behavior, 是关于TextBox只能输入数据或者小数点的。
发现有个问题, 就是英文IME下字母等等都能过滤, 但是一旦切换到中文输入法, 就会发现在OnPreviewTextInput处理 时Textbox.Text已经得到中文输入的值,导致就算PreviewTextInput响应了,而且当前的中文也被过滤了,但是TextBox.Text已经有同样的中文存在, 表现出过滤失败。
TextCompositionManager来重新注册的处理。 如下:
//this.AssociatedObject.PreviewTextInput += new TextCompositionEventHandler(OnPreviewTextInput); TextCompositionManager.AddPreviewTextInputStartHandler(this.AssociatedObject, new TextCompositionEventHandler(OnPreviewTextInput));