我有一个CanContentScroll为true的列表框,但其他的都是false.
我正在编写一个需要从中提取滚动查看器并在设备无关像素中计算垂直滚动偏移的行为.
由于CanContentScroll可以是true或false,因此我有时会获得逻辑项单位,而其他时候会获得物理像素.
所以我需要在CanContentScroll为真的情况下计算像素值.
例如:当列表框滚动三个项目时,VerticalOffset将给出3.如何将此3转换为项目使用的垂直像素(大小可能不同)?
谢谢
如果没有有效设置 CanContentScroll="False" ,则无法计算以像素为单位的值。
要了解以像素为单位的大小,您需要创建所有项目的容器并将所有容器的高度相加。为此,您需要首先生成所有容器。这意味着您实际上失去了虚拟化并有效地设置了 CanContentScroll="False"。在这种情况下,为什么首先要使用 CanContentScroll="True" 呢?
Nikolay 的代码试图做的就是承担起自己做 CanContentScroll="False" 所做的事情的负担,而不会给您带来本来可以获得的平滑滚动。
更重要的是,如果您知道 CanContentScroll="true" 始终存在,那么物理偏移可以解决哪些问题是逻辑偏移无法解决的?
| 归档时间: |
|
| 查看次数: |
2647 次 |
| 最近记录: |