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