У нас есть Canvas, содержащийся в ScrollViewer.Пользователи могут добавлять неограниченное количество элементов управления UserControl, которые, для упрощения, представляют собой RichTextControl, окруженный множеством декоративных прямоугольников.
У нас есть аранжировщик, который размещает все элементы управления UserControls, чтобы ни один из них не перекрывался.Когда аранжировщик работает, он вычисляет новую позицию для каждого UserControl и устанавливает свои X и Y на холсте.
Однако что-то заставляет ScrollViewer прокручиваться, так что после запуска аранжировщика пользователь может по-разному просматривать все свои элементы.
Я искал событие, чтобы перехватить, чтобы увидеть, что может вызвать изменение SV, но не похоже, что есть подходящий.(ManipulationStarted доступен только в WP7.)
Есть ли свойство, к которому мы можем привязаться, чтобы попытаться выяснить, почему горизонтальные и вертикальные смещения SV изменяются?
Спасибо за понимание того, что может происходить.
ОБНОВЛЕНИЕ : Я воспроизвел это в более простом проекте.Беда возникает, когда изменяется содержимое RichTextBox - RTB выводится для просмотра.
Есть ли способ предотвратить это?Возможно, какое-то свойство в ScrollViewer?
TIA ...
ОБНОВЛЕНИЕ 2 : Похоже, что событие RTB SizeChanged заставляет ScrollViewer отображать RTB.В то время как мы можем добавить обработчик для события SizeChanged, не существует переопределяемого метода OnSizeChanged.