如何在UWP中创建自定义滚动条



我需要在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);

最新更新