Виртуализируйте WinForms ScrollableControl - Дорогие дочерние элементы
Я создаю PDF Viewer, используя библиотеки Atalasoft DotImage. У них есть компонент для просмотра PDF, но он не поддерживает непрерывный макет PDF в стиле Acrobat, мне нужно отображать страницы по одной странице.
Мне нужно создать своего рода виртуализируемый прокручиваемый элемент управления, в котором есть, вероятно, 3 PDFViewer'а, текущий фрейм и те, которые непосредственно до и после. Итак, мой вопрос - как бы я это сделал?
[Я занимаюсь WPF в течение последних 3 лет, и мой опыт работы с WinForms превратился в умственный месиво.]
Мне нужно уметь определять, какие зрители открывать, а какие закрывать. Как?
1 ответ
Вы можете сделать это с помощью панели. Установите AutoScroll = true и AutoScrollMinSize.Height = pages x control.Height. Реализуйте обработчик событий Scroll и посмотрите на свойство -AutoScrollPosition.Y, чтобы узнать, на что смотрит пользователь. При необходимости измените свойство Location 3 элементов управления и их свойство Page.