Редактор карт, который является частью нашего игрового пакета, использует чернила для рисования ландшафта, поэтому у меня есть недавний опыт такого рода вещей.
Как работает мое приложение, вы выбираете то, что рисуете (леса, дороги, контур и т. д.) и нарисуйте обводку чернилами.
Затем я обрабатываю этот обводку и получаю геометрию.Я передаю это в viewmodel> itemssource> itemscontrol.Это тогда шаблонируется в части местности.Этот пункт управления ниже чернильницы.Пользователь может манипулировать z-индексом тех, перемещая их вверх и вниз в наблюдаемой коллекции.Я полагаюсь только на порядок определения z-индекса.
Я также сохраняю данные каждого штриха, сериализуя их.
Вы думаете «как насчет стирания?».Для этого у меня был бы явный режим стирания этой вещи.Пусть они выберут форму и получат ее данные об обводке, добавят обводку обратно в чернильное изображениеКак только они закончат стирание, затем используйте кнопку «сохранить изменения» или что-то еще, чтобы повторно обработать штрих (ы) и переключиться обратно в режим редактирования.
Так как это редактор игровых карт, над которым я работаю, я рисуюсоздает типы областей и линий местности, но их площадь / линия определяется геометрией, переведенной из штриха.ZIndex соответствует порядку объектов на левой панели.Кнопки, которые вы видите с шевронами, направленными вверх и вниз, перемещаются в порядке