zoukankan      html  css  js  c++  java
  • WPF TextBox PreviewTextInput handle IME (chinese)

    今天调试自己写的WPF的Behavior, 是关于TextBox只能输入数据或者小数点的。
    
    发现有个问题, 就是英文IME下字母等等都能过滤, 但是一旦切换到中文输入法, 就会发现在OnPreviewTextInput处理 时Textbox.Text已经得到中文输入的值,导致就算PreviewTextInput响应了,而且当前的中文也被过滤了,但是TextBox.Text已经有同样的中文存在, 表现出过滤失败。

    原因可能是在中文输入后TextBox第一次得到值TextInput没有响应,而第二次响应时就算不合法被过滤,但第一次的值已存在。


    解决办法:
    不使用TextBox的PreviewTextInput事件, 而是调用TextCompositionManager来重新注册AddPreviewTextInputStartHandler的处理。 如下:
    

           //this.AssociatedObject.PreviewTextInput += new TextCompositionEventHandler(OnPreviewTextInput);
                TextCompositionManager.AddPreviewTextInputStartHandler(this.AssociatedObject, 
                    new TextCompositionEventHandler(OnPreviewTextInput));
  • 相关阅读:
    mysql的常用函数
    oracle的常用函数
    oracle 11g安装(转)
    Oracle TNS配置浅析
    PL/SQL Developer连接本地Oracle 11g 64位数据库
    mysql之对视图的操作
    mysql之对索引的操作
    mysql之对表的操作
    Mac机装Win7后 启动只见鼠标怎么办
    天高云淡风轻
  • 原文地址:https://www.cnblogs.com/muzizongheng/p/3169433.html
Copyright © 2011-2022 走看看