【问题标题】:WP7 ScrollViewer Snap-Back and Auto scrollbar visibility issues on windows phoneWP7 ScrollViewer Snap-Back 和 Windows 手机上的自动滚动条可见性问题
【发布时间】:2011-04-01 14:21:17
【问题描述】:

我有一个应用程序,它在占据页面固定高度的 ScrollViewer 中显示包装文本。我将 Horizo​​ntalScrollBarVisibility 设置为 Disabled,并将 VerticalScrollBarVisibility 设置为 Auto。

我遇到的可用性问题如下: 尽管设置为 Auto,但如果内容比 ScrollViewer 小,那么内容仍然可以上下滚动,要么滚动到末尾,要么隐藏部分文本。我希望 ScrollViewer 在整个内容都在其范围内时不允许滚动。至少,当您过度滚动时,它应该始终将内容重新显示在视图中。

其次,当内容确实滚动时,它有时会卡在最后,并且不会从过度滚动中“弹回”。例如,如果内容完全适合 ScrollViewer,并且您在文本上向上或向下拖动手指,则文本将被 ScrollViewer 的顶部或底部遮挡,并且不会弹回。但是,如果您从 ScrollViewer 的内容外部开始向上拖动手指,则当您滚动超过任一端时,它会弹回。无论您在内容上还是在内容之外拖动,我都希望发生“回弹”行为。这可能吗?

【问题讨论】:

    标签: c# silverlight xaml windows-phone-7 windows-phone


    【解决方案1】:

    第一个问题:如果您的内容不足以保证需要滚动查看器,请不要将其放在一个中。如果内容的大小发生变化,则仅在内容量允许时启用滚动条。

    你能提供一种重现第二期的方法吗?

    【讨论】:

    • 我现在正在使用您的第二个建议的一种形式 - 即当内容太小而需要滚动时将 VerticalScrollBarVisibility 设置为禁用。然而,第二个问题仍然存在。对于简单的控件,它不会“粘贴”,例如打开 TextWrapping 的 TextBlock,但当内容是来自 Silverlight Toolkit for WP7 的 WrapPanel 时,它确实会粘贴。我确保 WrapPanel 的 VerticalAlignment 设置为“Top”而不是 Stretch,所以我知道它没有将空白空间视为“内容”。
    • 啊哈!看起来滚动查看器内容中的某些控件正在订阅 ManipulatingCompleted RoutedEvents 并设置 e.Handled = true,这意味着 ScrollViewer 没有获取它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2011-10-03
    相关资源
    最近更新 更多