我需要在UWP中创建一个自定义滚动条吗?但我找不到任何清晰的逻辑来计算滚动条拇指宽度和位置。我试过什么?
ThumbWidth=(VisibleLength/TotalLength)*ScrollRegionWidth;
ThumbPosition=(ScrollLeft/TotalLength)*ScrollRegionWidth;
其中,
VisibleLength -> viewable area width
TotalLength -> Total Content width
ScrollRegionWidth -> Scrollbar width - (2 x ArrowWidth) (or) Thumb Track width
ScrollLeft -> how much content scrolled !!
这是正确的吗?我试过了。但是当我的整个内容滚动到末尾时,滚动条的拇指不会转到拇指轨迹的末尾!
我需要创建一个自定义滚动条,如何做到这一点?我需要拇指宽度和位置的完整逻辑。
如何在UWP中创建自定义滚动条?
ThumbWidth=(VisibleLength/TotalLength)*ScrollRegionWidth;
你的第一行是正确的。并且你可以用VisibleLength = TotalLength
来验证它,那么ThumbWidth
将填充所有的ScrollRegion
。
ThumbPosition=(ScrollLeft/TotalLength)*ScrollRegionWidth;
但是第二行看起来不正确,Thumb的起始位置应该是左上角,ScrollRegion应该是(ScrollRegionWidth
-ThumbWidth
(。
ThumbPosition=(ScrollLeft/TotalLength)*(ScrollRegionWidth-ThumbWidth);