Почему я должен использовать InkCanvas в WPF?
в моем приложении WPF у меня есть некоторые функции рисования. Я решил это, используя холст и обрабатывая жесты мыши вручную, а также добавляю нарисованные штрихи (завернутые в InkPresenter) к этому холсту.
используя Blend я вдруг обнаруживаю, что есть что-то под названием объекта inkcanvas. В соответствии с Blend это контроль, который "определяет область, которая получает и выводит чернильные штрихи.", поэтому это звучит релевантно тому, что я делаю. Но все кажется чтобы работать нормально, используя простой холст..
Итак; как InkCanvas отличается от простого холста, и почему я должен использовать это вместо этого?
3 ответов
они действительно предназначены для двух разных целей. Canvas
для макета. Специфически для более точного контроля над планом используя абсолютный располагать. InkCanvas
это, как вы знаете, для захвата и отображения штрихов.
то, что вы делаете, просто прекрасно, но InkCanvas
имеет некоторые полезные дополнительные функции, такие как EditMode
среди других. Он предназначен, чтобы спасти вас от написания много вещей, которые вы должны были бы сделать вручную с помощью Canvas
. Используя Canvas
- Это собственного рода подход, в котором InkCanvas
- это использование встроенного подхода.
InkCanvas обрабатывает события мыши для рисования на холсте. Он также имеет эту функцию:
- Сохранить/Загрузить
- Изменить Размер/Масштабировать
- выделить за текстом
- режим ластика
когда производительность обеспокоена, InkCanvas с реальными событиями мыши намного быстрее, чем создание штриха из StylusPointCollection, я обнаружил, что добавление новых точек в StylusPointCollection является дорогостоящей операцией.