DesignSurface и Zoom - PullRequest
       37

DesignSurface и Zoom

1 голос
/ 16 ноября 2009

Я пытаюсь реализовать функцию Zoom на DesignSurface, которая использует архитектуру времени на основе .Net 2 Designer. У меня есть два подхода для обработки события ZoomChanged:

  1. Выгрузите поверхность конструктора и перезагрузите с увеличенным содержимым.
  2. Определите затронутые свойства и установите для них Увеличенные значения свойств.

Проблема:
В подходе 1 «Выгрузка и перезагрузка» - это довольно сложная задача для среды выполнения, которая будет выгружать и перезагружать множество свойств, на которые не повлияет изменение масштаба.

В подходе 2 изменяемые свойства вызовут много событий PropertyChanged и выполнят относительные обработчики, что сделает ответ довольно медленным. Если я захочу отписаться и повторно подписаться на все обработчики событий, у меня не будет ни единого места, чтобы сделать это, так как оно охватывает множество зависимых компонентов.

Кто-нибудь на спасении?

...