Как найти, что 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; } } 
  • Создание BitmapImage из массива байтов
  • Для чего нужен DataContext?
  • Плоская кнопка wpf
  • Как правильно привязать xml к WPF DataGrid?
  • WPF DataGrid - кнопка в столбце, получающая строку, из которой она появилась в обработчике событий Click
  • Как добавить настраиваемую маршрутизированную команду в WPF?
  • Выбор элемента текстового поля в списке не изменяет выбранный элемент списка
  • Что такое WPF Preview Events?
  • В WPF, как я могу определить, является ли элемент управления видимым для пользователя?
  • Ленивая загрузка содержимого вкладки WPF
  • Приложение WPF из Visual Studio 2010 выходит из строя Windows 7
  • Interesting Posts

    Как вы извлекаете данные POST в Node.js?

    Прочитать строку строки по строке, присваивая значение переменной

    Диспетчер сценариев Excel

    Эквивалент AutoHotKey на Mac

    Любые приличные профилировщики C # там?

    Ошибка: не удалось найти оболочку gradleиента в файле android sdk. может потребоваться обновить ваш Android-файл sdk

    Получение ROBOCOPY для возврата «правильного» кода выхода?

    Как загрузить изображение в синтаксический анализатор, используя parse api в android

    Что является хорошим примером для различения fileprivate и private в Swift3

    Установить значение для конкретной ячейки в pandas DataFrame с использованием индекса

    Извлечение изображения из PDF с помощью itextsharp

    Как превратить сотни текстовых URL в Excel в интерактивные гиперссылки?

    Объединить данные гироскопа и акселерометра

    Разделение кода classа в файл заголовка и cpp

    Как остановить процентное расширение в пакетном файле?

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