以编程方式从Path Object创建InkCanvas Stroke

时间:2012-01-02 22:10:34

标签: wpf path inkcanvas stroke

我正在尝试将一些扫描的手写材料转换为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"/>

我读取Path的XAML并将其从MemoryStream对象 ms 加载到Path对象中:

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

我有一个名为V的InkCanvas。我想以编程方式从myPath对象创建笔划数据并将其添加到InkCanvas中。

注意:我不想将myPath作为UI元素添加到InkCanvas V的Children中。

我试过这个: http://code.msdn.microsoft.com/windowsdesktop/A-Coordinate-supported-03e4f1b7是一篇MSDN文章,描述了如何将坐标轴绘制到InkCanvas中。他正在解释将轴部分绘制到DrawingContext对象中。

但他没有解释如何通过此DrawingContext对象将这些绘图实际加载到真实的InkCanvas对象上。我确实需要帮助。

提前致谢。

1 个答案:

答案 0 :(得分:1)

从路径中获取所有点,从坐标创建StylusPoints。从StylusPoints创建StylusPointCollection并使用the respective Stroke constructor制作一个笔画,然后将此Stroke添加到画布的Strokes