Рекомендации по проектированию ДЛЯ API StylusInput
Ниже приведены рекомендации по проектированию API StylusInput.
Вы можете обновить свойство WindowInputRectangle объекта RealTimeStylus и свойство ClipRectangle объекта DynamicRenderer , когда перо не работает. Это может быть полезно, если требуется динамическая область рисования во время сбора рукописного ввода приложением.
Чтобы оптимизировать повторное использование и обслуживание кода подключаемого модуля, подключаемые модули не должны выполнять вызовы непосредственно к приложению, но должны использовать CustomStylusData (объект CustomeStylusData в управляемом коде) для взаимодействия с приложением.
Коллекции подключаемых модулей объекта RealTimeStylus упорядочены. Относительное положение подключаемых модулей в этих коллекциях может быть очень важным. Например, подключаемый модуль, изменяющий сведения о пакетах, вероятно, должен быть добавлен в коллекцию синхронных подключаемых модулей перед подключаемым модулем динамического отрисовщика.
Возможность добавления пользовательских данных пера в поток данных пера планшета должна использоваться экономно. Используйте эту функцию, только если другой подключаемый модуль должен получить эти сведения в потоке данных. Кроме того, избегайте добавления данных пользовательского пера в ответ на другие данные пользовательского пера, поступающие в подключаемый модуль, так как это может создать бесконечный цикл.
Подключаемые коллекции можно изменять при включенном объекте RealTimeStylus ; однако это может усложнить прогнозирование поведения приложения. При добавлении подключаемого модуля при включении объекта RealTimeStylus объект RealTimeStylus вызывает microsoft.StylusInput.IStylusSyncPlugin подключаемого модуля. Метод RealTimeStylusEnabled (метод Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusEnabled или Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusEnabled в управляемом коде). При удалении подключаемого модуля при включении объекта RealTimeStylus объект RealTimeStylus вызывает метод RealTimeStylusDisabled подключаемого модуля (либо метод Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusDisabled , либо метод Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusDisabled в управляемом коде). Это позволяет подключаемым модулям поддерживать правильное состояние без необходимости проверка свойство Enabled объекта RealTimeStylus. При добавлении подключаемого модуля во время включения объекта RealTimeStylus данные подключаемого модуля, получаемые подключаемым модулем, могут содержать недостаточно информации для адекватного определения контекста исходных данных. Например, недавно добавленный подключаемый модуль может начать получать данные пакетов из пера, которое находится в середине росчерка. Аналогичным образом, при удалении подключаемого модуля при включении объекта RealTimeStylus данные подключаемого модуля, полученные подключаемым модулем, могут оказаться недостаточными для завершения обработки данных.
Примечание
Для общей стабильности сбросьте внутреннее состояние подключаемого модуля при вызове метода RealTimeStylusEnabled или RealTimeStylusDisabled .
Объект RealTimeStylus создает исключение, если подключаемый модуль изменяет коллекцию подключаемых модулей, к которой он подключен. Это происходит только в том случае, если подключаемый модуль делает это, когда он вызывается объектом RealTimeStylus в качестве члена этой коллекции.