Виртуализируйте 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.

Другие вопросы по тегам