Как найти компонент в ScrollViewer, который обрабатывает событие RequestBringIntoView?
Он не отображается на двух частях ScrollBar (во всяком случае, не напрямую).
Спасибо за любые указатели ...
ОБНОВЛЕНИЕ: Связанный: Могу ли я получить ScrollContentPresenter часть ScrollViewer? Как?
Спасибо -
Увеличенное изображение:
У нас есть большой холст, содержащийся в ScrollViewer. Во время выполнения произвольное количество UserControls (я буду называть их «Blobs») добавляются на холст из базы данных. Их позиция и содержание взяты из БД. Пользователь может «выбрать» BLOB-объект, щелкнув по нему, и его внешний вид изменится, чтобы указать, что он выбран.
Если пользователь использует полосу прокрутки, чтобы переместить выбранный BLOB-объект вне поля зрения, а затем щелкает другой BLOB-объект, Canvas прокручивается, чтобы снова отображался ранее отсутствующий объект BLOB-объектов. Я предполагаю, что это связано с тем, что какой-то объект вызывает RequestBringIntoView, и ScrollViewer обрабатывает его.
Надеюсь, что это имеет смысл ...
Еще больше информации:
Добавлен обработчик (sb_ValueChanged) в событие ValueChanged полосы прокрутки Scrollviewer. Вот стек от щелчка мыши, который ускоряет прокрутку:
OurControl.sb_ValueChanged () System.Windows.dll! System.Windows.Controls.Primitives.RangeBase.OnValueChanged () System.Windows.dll! System.Windows.Controls.Primitives.ScrollBar.OnValueChanged () System.Windows. Dll! System.Windows.Controls.Primitives.RangeBase.OnValuePropertyChanged ()
System.Windows.dll! System.Windows.DependencyObject.RaisePropertyChangeNotifications ()
System.Windows.dll! System.Windows.DependencyObject.UpdateEffectiveValue ()
System.Windows.dll! System.Windows.DependencyObject.SetValueInternal ()
System.Windows.dll! System.Windows.DependencyObject.SetValue ()
System.Windows.dll! System.Windows.Controls.ScrollViewer.InvalidateScrollInfo () System.Windows.dll! System.Windows.Controls.ScrollContentPresenter.VerifyScrollData ()
System.Windows.dll! System.Windows.Controls.ScrollContentPresenter.ArrangeOverride ()
System.Windows.dll! System.Windows.FrameworkElement.ArrangeOverride ()
Если бы я только мог узнать, что на самом деле является FrameworkElement, который запускает беду ...