WPF与输入法冲突研究之一:百度输入法会导致WPF程序的崩溃!

在学习和使用了WPF一段时间之后,有点感觉WPF是个不太成熟的框架,不知道是我学的太肤浅,还是WPF得BUG太多!

>>>>>>>模拟场景<<<<<<<<<

客户:能用WPF给我编写个小程序吗?

程序员:哦,什么样的小程序?

客户:一旦我输入什么东西,你就给我弹出一个警告框。

程序员:这么简单?!还有别的要求吗?

客户支持各种输入法,不能崩溃!

程序员:哦,收您500可以吗?

客户:嗯,不贵~程序员:(嘿嘿,人傻钱多)

>>>>>>>程序员开始努力的写代码<<<<<<<<<

程序员心说,这么简单的程序,就不用XAML了,一个cs文件就搞定,看我的!

  1. using System;  
  2. using System.Windows;  
  3. using System.Windows.Controls;  
  4.   
  5. namespace BaiduCrashesWPF  
  6. {  
  7.     /// <summary>  
  8.     /// Interaction logic for App.xaml  
  9.     /// </summary>  
  10.     public class Program  
  11.     {  
  12.         [STAThread]  
  13.         static void Main(string[] args)  
  14.         {  
  15.             TextBox txtBox = new TextBox();  
  16.             txtBox.Width = 400;  
  17.             txtBox.TextChanged += txtBox_TextChanged;  
  18.   
  19.             Window mainWin = new Window();  
  20.             mainWin.WindowStartupLocation = WindowStartupLocation.CenterScreen;  
  21.             mainWin.Content = txtBox;  
  22.             mainWin.SizeToContent = SizeToContent.WidthAndHeight;  
  23.   
  24.             Application app = new Application();  
  25.             app.ShutdownMode = ShutdownMode.OnMainWindowClose;  
  26.             app.Run(mainWin);  
  27.         }  
  28.   
  29.         static void txtBox_TextChanged(object sender, TextChangedEventArgs e)  
  30.         {  
  31.             MessageBox.Show("用中文输入法了吗?假如你用了,那么这个程序马上就要崩溃了!");  
  32.         }  
  33.     }  
  34. }  



好了,运行下试试。。。输入中文!打“中国”两个字(一定要2个字哦)!哇,对话框弹出来了!哇,程序崩溃了!!!TNND!经测试,百度输入法,谷歌v2输入法、QQ、搜狗输入法都会导致程序的崩溃。微软拼音输入法不会,谷歌v3不会。

具体原因,见以后的博文~~~

原文地址:https://www.cnblogs.com/weiweiboqi/p/4813222.html