2014-10-29 2 views
0

Я использую элемент Canvas в элементе ScrollViewer. Работает нормально, но моя проблема в том, что некоторые объекты размещаются за пределами холста, я не могу «прокручивать их».Как увеличить прокручиваемую область ScrollViewer?

Если холст больше, чем ScrollViewer, я могу прокручивать, но нет, если есть только некоторые объекты из границ с холста.

Есть ли какой-либо трюк для увеличения прокручиваемой области?

спасибо.

ответ

0

Размер экстента (прокручиваемая область) по умолчанию определяется из размера непосредственного дочернего элемента просмотра прокрутки. Когда размер экстента вычисляется таким образом, единственный способ увеличить его - увеличить размер ребенка, например, ваш Canvas.

Существует альтернативный способ обеспечения большего контроля над ScrollViewer, а это значит, что дочерний элемент реализует IScrollInfo. Интерфейс IScrollInfo в основном обеспечивает управление прокруткой к вам, включая размер видового экрана и размер экстента. Однако, если вы идете по этому пути, вы должны реализовать каждый аспект прокрутки, в том числе в ответ на прокручивать операции, такие как LineUp, LineDown, PageUp, PageDown, MouseWheelUp и т.д. Они все подвержены через IScrollInfo, так что вы не должны беспокоиться об обработке входных событий - просто логические команды.

Некоторые беглые googling показывают, по крайней мере, несколько приличных учебников по реализации IScrollInfo, если вы решите пойти по этому маршруту.

Смежные вопросы