有誰知道我如何輕鬆檢測Windows OS IME(輸入法編輯器)是否在Silverlight框架中處於活動狀態。讓我來解釋導致我遇到的情況:檢測IME(輸入法編輯器)是否在Silverlight中處於活動狀態
我遇到了使用中文(簡體中文)Microsoft拼音導致CLR異常的問題。該場景是當TextBox正在處理其TextChanged事件時。例如:
- 一個TextBox不應該接受字符,而只能接受數字。爲了實現它正在處理它的TextChanged事件,並且在那種情況下,它通過將其Text屬性反轉爲最後一個正確的輸入字符來處理輸入。在這種情況下,如果使用(中文(簡體,中國)Microsoft拼音)IME,則會引發FatalExecutionEngineError。
在WPF中,可以通過使用InputMethod.Current不顛倒TextChanged事件中的Text來克服此問題。 ImeState來檢查IME是否處於活動狀態。不幸的是,這在Silverlight框架中是不可用的,這就是我發佈這個問題的原因。
目前我唯一發現的是,我可以將InputMethod類的IsInputMethodEnabled屬性設置爲TextBox控件,以禁用所有IME輸入,但這當然不僅會禁用不正確的輸入,而且會禁用正確的輸入。
任何人有任何想法如何檢測IME是否在Silverlight平臺中使用/活動?謝謝。