Поделиться через


Данные рукописного ввода

После сбора рукописного ввода приложения могут управлять этими данными, управлять и (или) передавать их на другие носители. Действия по выбору, копированию, перемещению, сохранению, просмотру и изменению рукописного ввода выполняются в объекте Ink и его содержащихся в нем элементах, таких как коллекция Strokes и объекты Stroke .

Примечание

Используя Real-Time пера, приложения могут хранить данные в собственном формате (например, сохранять штрихи).

 

Рукописный ввод, штрихи и пакеты

Объект Ink — это базовый тип данных, который управляет, управляет и сохраняет входные данные, собранные из объекта InkCollector . Объект Ink содержит один или несколько объектов Stroke и общие методы и свойства для управления этими штрихами и управления ими. Росчерк определяется как набор данных, которые записываются в одной последовательности пера вниз, пера-перемещения и пера вверх. Данные обводки содержат коллекцию пакетов. Пакет — это набор данных, которые планшетное устройство отправляет в каждой точке выборки. Эти данные содержат такие сведения, как координаты, давление пера, угол пера и все остальное, что может передавать оборудование. Свойство PacketDescription объекта Stroke описывает пакеты, создаваемые планшетом .

Strokes

Вы можете получить snapshot штрихов в объекте Ink с помощью свойства Strokes объекта Ink. Свойство Strokes — это коллекция ссылок на штрихи в объекте Ink во время чтения свойства Strokes . Если штрихи впоследствии добавляются в объект Ink или удаляются из объекта Ink , ранее полученная коллекция Strokes не обновляется. Кроме того, свойство Strokes является значением и, как и любое значение, выходит из область, если оно не назначено переменной.

Чтобы свойство Strokes синхронизировалось с объектом Ink , заключите его в обработчик событий StrokesAdded и StrokesRemoved в коллекции Strokes . Обработчик должен получить новую копию свойства Strokes при запуске любого события. Будьте внимательны, чтобы не добавить обработчик событий в коллекцию Strokes, которая не область до запуска события.

Обратите внимание, что theAddedStrokesIDs в этом примере обновлена новая копия свойства штрихов в обработчике StrokesAdded_Event .

public void StrokesAdded_Event(object sender, StrokesEventArgs e)
{
    int [] theAddedStrokesIDs = e.StrokeIds;
    theListBox.Items.Clear();
    foreach (int i in theAddedStrokesIDs)
    {
        theListBox.Items.Add("Added Stroke ID: " + i.ToString());
    }
}

Свойство PacketDescription

Свойство PacketDescription объекта Ink определяет набор сведений в каждом пакете, который приложение получает с устройства планшетного компьютера. Сведения обычно включают координаты, но они могут включать гораздо более подробные сведения (в зависимости от возможностей дигитайзера планшетного компьютера), такие как давление пера или угол пера. Задавая описания пакетов в объекте InkCollector или InkOverlay перед сбором рукописного ввода (с помощью свойства DesiredPacketDescription), вы получаете полный контроль над свойствами устройств планшетного компьютера, которые вы хотите получить.

Расширенные свойства

Расширенные свойства предоставляют механизм для присоединения данных, определяемых приложением , к рукописным фрагментам и другим объектам. Дополнительные сведения о расширенных свойствах см. в коллекции ExtendedProperties .

Отрисовка рукописного ввода

Объект Renderer отвечает за отрисовку рукописного ввода. При наличии соответствующего контекста планшета объект Renderer может сопоставлять координаты пространства рукописного ввода с пикселями, применять преобразования представлений и отображать рукописный ввод на экранах и принтерах. Методы Draw и DrawStroke являются основными методами отрисовки рукописного ввода. Дополнительные сведения о отображении рукописного ввода в окне см. в разделе Объект Renderer .

Cusps

Штрих обычно начинается, когда перо опускается на поверхность рисования, и заканчивается при поднятии пера. В пределах штриха пики, углы и радикальные изменения направления называются cusps. Конечные точки росчерка также считаются cusps. Например, прописная буква "L" содержит три cusps, по одному в середине и по одному на каждом конце.

При вводе штриха он обычно сглаживается и отрисовывается с помощью кривой Безье (или ломаной). Кривые Безье могут превратить cusps в небольшие циклы. Например, пик проклятой буквы "i" может быть сглажен и похож на cursive "e". Чтобы избежать этого, отрисовщики Майкрософт имеют этап pre-Bezier, который обрабатывает cusps по-разному.

Cusps также можно использовать для подраздела объектов Stroke на стираемые единицы. Например, выбор вертикальной стороны прописной буквы "L" может означать стирания только этой стороны. Часть штриха, которую необходимо стереть, будет частью между двумя ударами.