Я пишу 2D-графический инструмент в C# и WPF, и я использую Adorners
на Shapes
, нарисованном на Canvas
.Доступ к данным у Adorner
Я хотел бы, чтобы украшатели выделяли, когда фигура считается «выбрана», которую я сейчас делаю, используя MouseDown
и MouseUp
события.
Однако пользователь может выбрать несколько фигур, поэтому не все формы получат оба события мыши.
У меня есть класс, который управляет чертежом, который содержит List
выбранных фигур. Каков наилучший способ предоставить посетителям доступ к этим данным, чтобы они могли видеть, выбран ли их украшенный элемент?
Некоторые вещь я рассмотрел:
- Создание
List
глобальной - плохая идея - Sub-причислять каждую форму, чтобы добавить «выбранные» свойство - потребует изменения все ссылки на формы в моем класс
Вы также можете реализовать PropertyChanged на DependencyProperty автоматически установить Adorner на выбранных форм. –
Я посмотрел на теги, но они недоступны для фигур, только для Adorners! Можно ли добавить функцию тега в существующий класс? – dig412
Формы: Эллипс, Многоугольник и Прямоугольник, происходящие из System.Windows.Shapes.Shape справа? Класс Shape имеет свойство Tag. Это происходит из FrameworkElement, поэтому вы должны иметь это :) –