InkAnalyzer theInkAnalyer = new InkAnalyzer();            
            theInkAnalyer.AddStrokes(inkCanvs.Strokes);
            
            theInkAnalyer.SetStrokesLanguageId(inkCanvs.Strokes,0x0804);
            theInkAnalyer.SetStrokesType(inkCanvs.Strokes, StrokeType.Writing);
            AnalysisStatus status = theInkAnalyer.Analyze();
            if (status.Successful)
            {
                textBox1.Text = theInkAnalyer.GetRecognizedString();
                for (int i = 0; i < theInkAnalyer.GetAlternates().Count; i++)
                {
                    textBox2.Text += theInkAnalyer.GetAlternates()[i].RecognizedString;
                }
                
            }
            else
            {
                MessageBox.Show("识别失败");
            }
这个可以识别手写,但是如果碰到左右结构的汉字,列入“识”,他会识别为“讠”和“只”,求大侠们帮帮!!!

解决方案 »

  1.   

    字写得紧凑一点呗。最近刚好做过这个。
    http://topic.csdn.net/u/20120602/11/98db240c-92ab-4719-88c7-6ac11de8b256.htmlwpf下的这里有个示例(下载在右上角)
    https://skydrive.live.com/?cid=51b2fdd068799d15&sc=documents&id=51B2FDD068799D15%21686
    直接用它里面dll,识别还率蛮高的(包括连笔书写)。
      

  2.   

    写紧凑一点的确行,请问InkCanvas这个控件里面写的线条能设置粗一点嘛?
      

  3.   

    设置线条粗细没做过,查了下资料。
    http://www.cnblogs.com/zhouyinhui/archive/2007/08/03/841569.html
    下面那段,更改笔迹的相关属性,试试能行不?
      

  4.   


    private void inkCanvas_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (inkCanvas.Strokes.Count > 0)
            {            InkAnalyzer theInkAnalyzer = new InkAnalyzer();            theInkAnalyzer.AddStrokes(inkCanvas.Strokes);
                theInkAnalyzer.SetStrokesLanguageId(inkCanvas.Strokes, 0x0804); 
                // 0x0804 简体中文 0x0409 美国英语
                theInkAnalyzer.SetStrokesType(inkCanvas.Strokes, StrokeType.Writing);            AnalysisStatus status = theInkAnalyzer.Analyze();            if (status.Successful)
                    textBox1.Text = theInkAnalyzer.GetRecognizedString();
                else
                    MessageBox.Show("识别失败!");
            }
        }看样子是没有什么问题,但是status.Successful每次都是false
      

  5.   


    你好,为什么我用你的程序识别不出来,是不是系统中需要装什么东西(识别器之类),msdn上有个文章,我用里面的代码也识别不出来!
      

  6.   

    需要一个叫做tabletPC的组件。win7自带(有些精简版的可能没有)。
    XP下参见http://www.cnblogs.com/tong-tong/archive/2011/10/22/2220446.html