Для неизменных объектов значения, как ints, строки или datetimes, объектные идентификационные данные не особенно полезны. Лучше думать о равенстве. Идентификационные данные являются по существу деталью реализации для объектов значения - так как они неизменны, нет никакого эффективного различия между наличием нескольких судей к тому же объекту или нескольким объектам.
Вы можете создать свой собственный класс, который наследуется от Rectangle
и примените там поведение.
Я не пробовал, но, вероятно, я бы создал прикрепленный свойство, которое может содержать коллекцию поведений. В обработчике изменения свойства этого свойства я бы перечислил коллекцию и добавил каждое поведение к реальному свойству Interation.Behaviors. Это немного запутано, но должно сработать.
Этот подход не будет работать без гораздо большей работы: проблема в том, что поведения и триггеры могут быть присоединены только к одному объекту за раз. Вероятно, поэтому в первую очередь существует ограничение на их применение с использованием стиля. Чтобы это заработало, вам нужно создать какую-то фабрику триггеров или поведения.