Silverlight5 無法切換輸入法,無法輸入中文的原因及解決初探


問題源於前不久做的SL應用,開發是在SL4下開發的,由於完成后SL5也出來了,據說性能有較大提高,就把客戶端升級到了SL5。經過簡單的測試后,沒發現什么異常。可是過了兩天,客戶打電話說:中文不能輸入了,輸入法切換后還是英文,或根本就切換不了。可開發機器上一切正常啊!

程序用了自己寫的控件,其中用到了Popup控件,Popup中的ListBox控件作為一個下拉列表供用戶選擇。 在win7上測試發現,當選中一項,Popup隱藏后,將焦點移到下一個TextBox控件,原來好好的輸入法變為了這樣:

XP和2003下測試,只能發現語言欄變短了!並且不管用什么輸入法都一樣不能輸入中文!

Google搜索后發現,ContextMenu控件也有這樣的問題,當菜單顯示時,也會出現上面的現象!由此推斷SL對輸入法的控制是這樣的:如果當前獲得焦點的控件不能輸入,就禁用中文輸入法!

於是將自定義控件中的Focus()語句注釋掉,運行正常了,難道是Focus到了一個無效的控件上了!可是不知道SL4為什么正常呢?

進一步修改代碼:Popup隱藏后,再調用Focus(),這樣輸入法正常了!

看來用Silverlight開發還是會遇到不少麻煩的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM