2014-12-16 1 views
2

Я пытаюсь использовать распознавание текста с помощью элемента управления WPF InkCanvas на компьютере под управлением Windows 8.1 с .Net 4.5.WPF Handwriting .NET 4.5 Windows 8: Missing IAWinFX.dll и другие

Примечание: ** Управление WPF InkCanvas Windows 8.1 **, а не Windows Forms и Windows Apps!

Согласно помощи должно быть очень просто:

MSDN: Handwriting Recognition

Однако, когда я доберусь до этого пункта я застреваю.

Добавить ссылку на анализ сборок WPF Ink, IAWinFX.dll, IACore.dll и IALoader.dll, которые можно найти в папке \ Program Files \ Reference Сборки \ Microsoft \ Tablet PC \ v1.7. Замените содержимое кода за файлом следующим кодом.

У меня нет этих файлов на моем компьютере. Я попробовал на своем ПК с Windows 7 Pro и все еще не могу найти их.

От поиска stackoverflow и в других местах кажется, что другие люди имеют схожие проблемы, а также есть несколько различных версий распознавания чернил/рукописного ввода. Например, похоже, что размещение его в приложении для Windows 8 Store должно быть довольно простым. Но мой вопрос касается конкретно программы WPF с .NET 4.5 в соответствии с документацией MSDN!

ответ

0

Пожалуйста, попробуйте ниже образец для окон 8. https://code.msdn.microsoft.com/windowsapps/InkPen-sample-in-CSharp-189ce853/sourcecode?fileId=60841&pathId=233613099

+0

Спасибо. Системные требования - Windows XP. Это работает на Windows 8 - я могу попробовать это, я полагаю! Но это 10 лет - это новейшая технология, которую MS имеет, или она просто действует как интерфейс к более современным распознавателям на моем компьютере? –

+0

Пожалуйста, попробуйте link.https: //code.msdn.microsoft.com/windowsapps/InkPen-sample-in-CSharp-189ce853/sourcecode? FileId = 60841 & pathId = 233613099 –

+1

Хорошо - ваша первая была просто ссылкой на Tablet SDK из Он устанавливает и работает в Windows 8 и включает рабочий пример с использованием Windows Forms. Это не то же самое, что WPF. Второй пример - приложение для Windows Store. Оба эти ссылки легко найти путем беглого поиска MSDN. У меня создается впечатление, что вы на самом деле не пытались это сделать и пытаетесь apm lmgtfy dot com –

4

Я просто пошел вниз точно такой же путь, как и вы, и у меня есть решение. Ссылка на распознавание почерка MSDN, которую вы указали, просто не работает, и это связано с тем, что она зависит от класса InkAnalyzer, который доступен только в том случае, если вы устанавливаете SDK Tablet PC v1.7 на компьютер XP (он не будет установлен в Windows 8).

Сказав, что установка Tablet PC v1.7 SDK делает, установите Microsoft.Ink.dll, который вы можете использовать для распознавания рукописного ввода. Единственный недостаток заключается в том, что вам придется взять штрихи в InkCanvas WPF и сохранить их в штрихи Microsoft.Ink.InkCollector.

Решение заключается в следующем:

1) Установите Windows XP Tablet PC SDK v1.7

2) Выполните все того же исходного кода, как это изложено MSDN Handwriting Recognition руководством для реализации ButtonClick исключением.

3) Добавить ссылку на ваше приложение WPF при просмотре и выбора этой библиотеки DLL: C: \ Program Files (x86) \ Microsoft Tablet PC Platform SDK \ Include \ Microsoft.Ink.dll

4) Добавить «используя Microsoft.Ink» заявление в верхней части файла MainWindow.xaml.cs, а затем добавьте следующий код в ваш метод ButtonClick:

private void buttonClick(object sender, RoutedEventArgs e) 
    { 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      theInkCanvas.Strokes.Save(ms); 
      var myInkCollector = new InkCollector(); 
      var ink = new Ink(); 
      ink.Load(ms.ToArray()); 

      using (RecognizerContext myRecoContext = new RecognizerContext()) 
      { 
       RecognitionStatus status; 
       myRecoContext.Strokes = ink.Strokes; 
       var recoResult = myRecoContext.Recognize(out status); 

       if (status == RecognitionStatus.NoError) 
       { 
        textBox1.Text = recoResult.TopString; 
        theInkCanvas.Strokes.Clear(); 
       } 
       else 
       { 
        MessageBox.Show("ERROR: " + status.ToString()); 
       } 
      } 
     } 
    } 

Вот оно !!! Одна важная нота, которую я хотел бы добавить. Если вы пытаетесь распознать рукописный ввод в Windows 10 или более поздней версии, и вам не мешает писать приложение WPF для рабочего стола, я настоятельно рекомендую использовать их технологию DirectInk. Я тестировал его на Windows 10 RC, и это намного проще в использовании.К сожалению, он работает только с приложениями Universal Apps (Metro), а не с Desktop Apps (WPF).

+1

Ссылка MSDN на шаге 2 немного изменилась: https://msdn.microsoft.com/en-us/library/vstudio/ ms754080 (v = VS.100) .aspx – eshan

+2

Это отлично работает с Windows 10 на Surface Pro с .NET 4.5.2. Благодарю. Просто чтобы все знали, что я выполнил поиск в Microsoft.Ink.dll в своей системе и нашел его в Program Files \ Common Files \ Microsoft Shared \ Ink. Не нужно было ничего устанавливать, просто ссылался на файл и использовал код buttonClick. – digthewells