Как найти, что ScrollViewer прокручивается до конца в WPF?

У меня есть экземпляр ScrollViewer в моем настраиваемом элементе управления … Мне нужно требование, чтобы scorollview прокручивалось до конца? Там в любом случае?

Вы можете проверить это следующим образом:

 ... scrollViewer.ScrollChanged += OnScrollChanged; ... private void OnScrollChanged(object sender, ScrollChangedEventArgs e) { var scrollViewer = (ScrollViewer)sender; if (scrollViewer.VerticalOffset == scrollViewer.ScrollableHeight) MessageBox.Show("This is the end"); } 

Вот моя MVVM-дружественная версия:

 public static class ScrollHelper { public static readonly DependencyProperty ScrollToBottomProperty = DependencyProperty.RegisterAttached("ScrollToBottom", typeof(ICommand), typeof(ScrollHelper), new FrameworkPropertyMetadata(null, OnScrollToBottomPropertyChanged)); public static ICommand GetScrollToBottom(DependencyObject ob) { return (ICommand) ob.GetValue(ScrollToBottomProperty); } public static void SetScrollToBottom(DependencyObject ob, ICommand value) { ob.SetValue(ScrollToBottomProperty, value); } private static void OnScrollToBottomPropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { var scrollViewer = obj as ScrollViewer; scrollViewer.Loaded += OnScrollViewerLoaded; } private static void OnScrollViewerLoaded(object sender, RoutedEventArgs e) { (sender as ScrollViewer).Loaded -= OnScrollViewerLoaded; (sender as ScrollViewer).Unloaded += OnScrollViewerUnloaded; (sender as ScrollViewer).ScrollChanged += OnScrollViewerScrollChanged; } private static void OnScrollViewerScrollChanged(object sender, ScrollChangedEventArgs e) { var scrollViewer = (ScrollViewer)sender; if (scrollViewer.VerticalOffset >= scrollViewer.ScrollableHeight) { var command = GetScrollToBottom(sender as ScrollViewer); if (command == null || !command.CanExecute(null)) return; command.Execute(null); } } private static void OnScrollViewerUnloaded(object sender, RoutedEventArgs e) { (sender as ScrollViewer).Unloaded -= OnScrollViewerUnloaded; (sender as ScrollViewer).ScrollChanged -= OnScrollViewerScrollChanged; } } 
  • Как связать с паролем в MVVM
  • Принудительное рендеринг элемента управления WPF в памяти
  • WPF ListView отключает выбор
  • Что такое имена столбцов DataTable с точками, что делает их непригодными для управления DataGrid WPF?
  • Связывание Richtextbox wpf
  • RichTextBox (WPF) не имеет строкового свойства «Текст»
  • Внедрение средства просмотра журналов с помощью WPF
  • Как правильно реализовать BackgroundWorker с обновлениями ProgressBar?
  • Как получить детей из контейнера WPF по типу?
  • WPF 4 DataGrid: получение номера строки в RowHeader
  • Как WPF UserControl наследует WPC UserControl?
  • Interesting Posts

    Вычислить расстояние между 2 координатами GPS

    Как JQuery clone () и изменить идентификатор

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: после завершения подключения никаких действий не разрешено

    Разница между count () и find (). Count () в MongoDB

    Уведомления Android с кнопками на нем

    Кто-нибудь знает, почему rsync будет продолжать отправлять файлы снова и снова?

    Как я могу объединить сотни файлов таблиц Excel?

    PowerShell Получить список разделяемых папок

    Ограничение видимости символов при связывании разделяемых библиотек

    В CUDA, что такое объединение памяти и как оно достигается?

    Удалите пароль BIOS для HP ProBook 4530s (сброс BIOS)

    Проверьте соответствие строки регулярному выражению в JS

    Как получить заголовок с карточек или похожих предметов с одинаковой высотой с помощью гибкой коробки?

    Как изменить цвет фона / переднего плана на «все» существующие терминалы

    Создание кнопки JavaFX 2 с использованием только FXML – Как добавить изображение к кнопке?

    Давайте будем гением компьютера.