我正在 WinUI 3 上开发桌面应用程序,我需要完全更改标准滚动条的外观。我还没有决定使用哪个滚动类。据我了解,我有两个选择:ScrollView和ScrollViewer,但我不明白它们的根本区别是什么。无论如何,我需要完全改变这些类附带的默认滚动条的外观。理想情况下,我想使用视觉层的功能来实现这些目的,但我完全不知道如何做到这一点。我想知道一般存在哪些定制可能性,以及如何完成这项任务
至于如何直观地自定义滚动条:我通过针对我正在使用的控件(例如 ScrollView)的内部 ScrollBar 来完成此操作,如下所示:
<ScrollView>
<ScrollView.Resources>
<Style TargetType="ScrollBar">
<Setter Property="IndicatorMode" Value="MouseIndicator" />
</Style>
</ScrollView.Resources>
<!-- Other stuff here... -->
</ScrollView>
至于可能性:某些 IDE 会在属性内为您提供 IntelliSense,以显示您可以使用哪些属性,或者您可以查看 ScrollBar 类文档 并找出它声明和继承的属性。
至于 ScrollView 与 ScrollViewer 问题,这种混淆是完全可以理解的 - 它们的命名有些令人困惑,并且 WinUI 3 Gallery 在突出差异方面还有一些不足之处。
也就是说,来自 MS Learn 通过 kmgallahan 在 GitHub 上的评论:
ScrollView 控件的行为和用法与 ScrollViewer 控件类似,但基于 InteractionTracker,具有动画驱动的视图更改等新功能,并且旨在确保 ItemsRepeater 的完整功能。
ScrollView 似乎是 ScrollViewer 的改进包装,具有一些额外的功能,使 UI 体验更好一些。个人意见:更喜欢ScrollView。