void ViewScrollChanged(object sender, ScrollChangedEventArgs e) { ScrollViewer sv = e.OriginalSource as ScrollViewer; topTreeScrollViewer = topTreeScrollViewer ?? topTree.GetScrollViewer(); leftTreeScrollViewer = leftTreeScrollViewer ?? leftTree.GetScrollViewer(); if (sv == this.scrollViewer) { topTreeScrollViewer.SynchronizeScroll(sv, ScrollSyncOption.HorizontalToVertical); leftTreeScrollViewer.SynchronizeScroll(sv, ScrollSyncOption.Vertical); } }