InkCanvas是一种特殊控件,在应用程序运行后,它不会呈现任何内容,不过,它可以收集用户通过鼠标、手指或笔所输入的数据,这些数据称为"墨迹(Inking)"。只要用户的输入操作是在InkCanvas控件的区域内,它就可以收集输入的墨迹。
InkCanvas控件公开InkPresenter属性,类型是位于Windows.UI.Input.Inking命名空间下的InkPresenter类。这个类用于配置墨迹收集相关的参数,例如墨迹的呈现颜色,呈现大小等。每当InkCanvas控件完成一次墨迹收集时会引发StrokesCollected事件。
为了便于开发,通常InkCanvas控件会与InkToolbar控件结合使用。InkToolbar会呈现一系列操作按钮,包括设置笔触颜色、粗细等操作,开发者不需要自行开发操作按钮。
InkCanvas控件除了有"涂鸦"功能外,还可以用来实现手写识别。InkRecognizerContainer类负责完成识别操作,识别成功后会得到一个InkRecognitionResult列表,表示识别结果。其中每个InkRecognitionResult对象会包含一个候选集合,集合按照被识别文字的精确程度进行排序。
接下来将通过示例来综合演示一下墨迹收集和手写识别。
- 新建应用程序项目、
- 界面布局可以参考下面XAML代码来完成。
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition/>
<