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

How to Create a Custom Scrollbar in 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 !! 

是否正确?我试过这样。但是当我的整个内容滚动到末尾时,滚动条拇指不会到达拇指轨道的末尾!

我需要创建一个自定义滚动条,该怎么做?我需要拇指宽度和位置的完整逻辑。

How to Create a Custom Scrollbar in UWP?

ThumbWidth=(VisibleLength/TotalLength)*ScrollRegionWidth;

你的第一行是正确的。你可以用 VisibleLength = TotalLength 验证它,然后 ThumbWidth 将填充所有 ScrollRegion.

ThumbPosition=(ScrollLeft/TotalLength)*ScrollRegionWidth;

但是第二行看起来不对,Thumb的开始位置应该是left top,ScrollRegion应该是(ScrollRegionWidth - ThumbWidth).

ThumbPosition=(ScrollLeft/TotalLength)*(ScrollRegionWidth-ThumbWidth);