WPF与输入法冲突研究之一:百度输入法会导致WPF程序的崩溃!
哎,在学习和使用了WPF一段时间之后,有点感觉WPF是个不太成熟的框架,不知道是我学的太肤浅,还是WPF得BUG太多!
>>>>>>>模拟场景<<<<<<<<<
客户:能用WPF给我编写个小程序吗?
程序员:哦,什么样的小程序?
客户:一旦我输入什么东西,你就给我弹出一个警告框。
程序员:这么简单?!还有别的要求吗?
客户:支持各种输入法,不能崩溃!
程序员:哦,收您500可以吗?
客户:嗯,不贵~程序员:(嘿嘿,人傻钱多)
>>>>>>>程序员开始努力的写代码<<<<<<<<<
程序员心说,这么简单的程序,就不用XAML了,一个cs文件就搞定,看我的!
using System; using System.Windows; using System.Windows.Controls; namespace BaiduCrashesWPF { /// <summary> /// Interaction logic for App.xaml /// </summary> public class Program { [STAThread] static void Main(string[] args) { TextBox txtBox = new TextBox(); txtBox.Width = 400; txtBox.TextChanged += txtBox_TextChanged; Window mainWin = new Window(); mainWin.WindowStartupLocation = WindowStartupLocation.CenterScreen; mainWin.Content = txtBox; mainWin.SizeToContent = SizeToContent.WidthAndHeight; Application app = new Application(); app.ShutdownMode = ShutdownMode.OnMainWindowClose; app.Run(mainWin); } static void txtBox_TextChanged(object sender, TextChangedEventArgs e) { MessageBox.Show("用中文输入法了吗?假如你用了,那么这个程序马上就要崩溃了!"); } } }
好了,运行下试试。。。输入中文!打“中国”两个字(一定要2个字哦)!哇,对话框弹出来了!哇,程序崩溃了!!!TNND!经测试,百度输入法,谷歌v2输入法、QQ、搜狗输入法都会导致程序的崩溃。微软拼音输入法不会,谷歌v3不会。
具体原因,见以后的博文~~~
客户:支持各种输入法,不能崩溃!