Я хотел бы создать следующее поведение в ScrollViewer, которое обертывает ContentControl:
Когда высота ContentControl возрастает, ScrollViewer должен автоматически прокручиваться до конца. Это легко достичь, используя ScrollViewer.ScrollToEnd().
Однако, если пользователь использует полосу прокрутки, автоматическая прокрутка больше не должна произойти. Это похоже на то, что происходит в окне вывода VS, например.
Проблема заключается в том, чтобы знать, когда прокрутка произошла из-за прокрутки пользователя и когда это произошло, потому что размер содержимого изменился. Я попытался сыграть с ScrollChangedEventArgs из ScrollChangedEvent, но не смог заставить его работать.
В идеале я не хочу обрабатывать все возможные события мыши и клавиатуры.