Подтвердить что ты не робот

Почему я должен использовать InkCanvas в WPF?

В моем приложении WPF у меня есть некоторые функции рисования. Я решил это с помощью Canvas и вручную обрабатывать жесты мыши, и я также добавляю рисованные штрихи (завернутые в InkPresenter) к этому холсту.

Используя Blend, я вдруг обнаруживаю, что есть что-то, называемое InkCanvas. Согласно Blend, это элемент управления, который "Определяет область, которая получает и отображает чернильные штрихи". Поэтому это звучит так, как будто я делаю это. Но все, кажется, отлично работает, используя простой холст.

Итак, как InkCanvas отличается от простого холста, и почему я должен использовать его вместо этого?

4b9b3361

Ответ 1

Они действительно предназначены для выполнения двух разных целей. Canvas для макета. В частности, для более точного управления макетом с использованием абсолютного позиционирования. InkCanvas, как вы знаете, для захвата и отображения штрихов.

То, что вы делаете, прекрасно, но InkCanvas имеет некоторые дополнительные дополнительные функции, такие как EditMode среди других. Это предназначено, чтобы спасти вас от написания большого количества материала, который вам нужно будет сделать вручную, используя Canvas. Использование Canvas - это сворачивание вашего собственного подхода, когда InkCanvas используется заранее подобранный подход.

Ответ 2

InkCanvas обрабатывает события мыши для рисования на холсте. Он также имеет следующие функции:

  • Save/Load
  • Изменить размер /Scale
  • Выделите текст за
  • Режим ластик

http://www.kirupa.com/blend_wpf/inkcanvas_pg1.htm

Ответ 3

Когда производительность у заинтересованных, InkCanvas с реальными событиями мыши намного быстрее, чем создание штриха из StylusPointCollection, я обнаружил, что добавление новых точек в StylusPointCollection является дорогостоящей операцией.