Вопрос слишком широкий, чтобы дать ему хороший и простой ответ без написания книги.Мой совет - разбить ваш проект на подзадачи:
- Создайте элемент управления, который, например, выглядит как поле, отображающее некоторую редактируемую информацию (например, имя)
- Создайте область холста и местоэлемент управления
- Добавьте Drag & Drop к элементу управления, чтобы пользователь мог перетащить его через область холста
- Добавьте второй элемент управления и проведите линию между ними.
- Создание пользовательского интерфейса для добавления произвольного количества элементов управления на холст (например, с помощью перетаскивания)
- Добавление в элемент управления команд, представляющих действие (можно использовать
ICommand
) - Создание диспетчера рабочих процессов, который интерпретирует и выполняет команды в определенном порядке
- Расширение редактора, например, чтобы позволить пользователю повторно соединить линии или добавить правила и приоритеты в элемент управления или даже выбрать наборКоманды из пула и назначение их элементу управления
- Сделайте так, чтобы все выглядело хорошо
Теперь, когда у вас есть отдельные задачи, вы можете сосредоточиться на каждой и исследовать их индивидуально.Шаг за шагом.Поэтому ваши вопросы становятся более точными и на них легче ответить (для себя и других).