Эти свойства не бесполезны, вам просто нужно знать, как их правильно использовать. (Есть никаких методов не позволяет задавать абсолютные значения напрямую.)
Если предположить, что ScrollBar
видна, вы знаете, по следующему уравнению
topLeft/(contentSize - viewportSize) = scrollValue/scrollMax
Это можно перефразировать
scrollValue = (topLeft * scrollMax)/(contentSize - viewportSize)
= topLeft/(contentSize - viewportSize)
hvalue = topLeftX/(contentWidth - viewportWidth)
vvalue = topLeftY/(contentHeight - viewportHeight)
Где topLeftX
и topLeftY
- координаты x и y пикселя в верхнем левом углу окна просмотра. Используйте viewportBounds
, чтобы определить размер окна просмотра.
Вы могли бы также (я верю), набор (или связывать) ScrollPane в '' hmax' к contentWidth-viewportWidth' (и аналогично для 'vmax'), если вы хотите, чтобы значение находилось в пиксельных координатах. –