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