Программно создать InkCanvas Stroke из объекта Path - PullRequest
1 голос
/ 03 января 2012

Я пытаюсь преобразовать отсканированный рукописный материал в InkCanvas для распознавания рукописного текста с помощью InkAnalyser. У меня уже есть материал для рукописного ввода, доступный на XAML.

У меня этот путь (форма границы алфавита t) сохранен в файле .XAML физически:

<Path xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  Fill="#ff231f20" Data="F1 M 
7.931,2.750 L 7.931,12.267 L 0.000,12.267 L 0.000,19.351 L 7.931,19.351 L 7.931,47.268 C 
7.931,53.295 8.988,57.842 11.526,60.697 C 13.747,63.129 17.236,64.609 21.572,64.609 C 
25.167,64.609 28.022,63.975 29.820,63.340 L 29.396,56.256 C 28.022,56.679 26.542,56.890 
24.004,56.890 C 18.822,56.890 17.025,53.295 17.025,46.950 L 17.025,19.351 L 30.349,19.351 
L 30.349,12.267 L 17.025,12.267 L 17.025,0.000 L 7.931,2.750 Z"/>

Я читаю XAML пути и загружаю его в объект Path из объекта MemoryStream мс следующим образом:

Path myPath = (System.Windows.Shapes.Path)XamlReader.Load(ms);

У меня есть InkCanvas с именем V. Я хотел бы программно создать данные обводки из объекта myPath и добавить их в InkCanvas.

Примечание. Я не хочу добавлять myPath в качестве элемента пользовательского интерфейса в дочерние элементы InkCanvas V.

Я попробовал это: http://code.msdn.microsoft.com/windowsdesktop/A-Coordinate-supported-03e4f1b7 - статья MSDN, описывающая, как нарисовать координатную ось в InkCanvas. Он объясняет рисование осевой части в объекте DrawingContext.

Но он не объясняет, как на самом деле загрузить эти рисунки в реальный объект InkCanvas через этот объект DrawingContext. Мне нужна помощь именно там.

Заранее спасибо.

1 Ответ

1 голос
/ 03 января 2012

Получить все точки с пути, создать StylusPoints из их координат. Создайте StylusPointCollection из этих StylusPoints и используйте соответствующий Stroke конструктор , чтобы сделать штрих, этот Stroke затем можно добавить к Strokes холста.

...