Я пытаюсь реализовать функцию Zoom на DesignSurface, которая использует архитектуру времени на основе .Net 2 Designer.
У меня есть два подхода для обработки события ZoomChanged:
- Выгрузите поверхность конструктора и перезагрузите с увеличенным содержимым.
- Определите затронутые свойства и установите для них Увеличенные значения свойств.
Проблема:
В подходе 1 «Выгрузка и перезагрузка» - это довольно сложная задача для среды выполнения, которая будет выгружать и перезагружать множество свойств, на которые не повлияет изменение масштаба.
В подходе 2 изменяемые свойства вызовут много событий PropertyChanged и выполнят относительные обработчики, что сделает ответ довольно медленным. Если я захочу отписаться и повторно подписаться на все обработчики событий, у меня не будет ни единого места, чтобы сделать это, так как оно охватывает множество зависимых компонентов.
Кто-нибудь на спасении?