You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Xamarin Forms UWP项目的垂直滚动条颜色?

修改Xamarin Forms UWP端垂直滚动条颜色的实现方法

可以通过UWP项目的App.xaml文件直接完成修改,无需编写C#代码,以下是具体实现方式:

全局修改所有滚动条颜色

  1. 打开Xamarin Forms解决方案里的UWP项目,找到App.xaml文件。
  2. 在<Application.Resources>标签内添加自定义的ScrollBar样式,覆盖默认样式来调整颜色:
<Application.Resources>
    <Style TargetType="ScrollBar">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ScrollBar">
                    <Grid>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal"/>
                                <!-- 鼠标悬停时的滑块颜色 -->
                                <VisualState x:Name="PointerOver">
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetName="VerticalThumb" Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" To="#FF66BB6A" Duration="0"/>
                                    </Storyboard>
                                </VisualState>
                                <!-- 鼠标按下时的滑块颜色 -->
                                <VisualState x:Name="Pressed">
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetName="VerticalThumb" Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" To="#FF43A047" Duration="0"/>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <!-- 垂直滚动条轨道颜色 -->
                        <Rectangle x:Name="VerticalTrack" Fill="#E0E0E0" Width="6" Margin="0,4"/>
                        <!-- 垂直滚动条默认滑块颜色 -->
                        <Rectangle x:Name="VerticalThumb" Fill="#BDBDBD" Width="6" RadiusX="3" RadiusY="3" Margin="0,4"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Application.Resources>

你可以根据需求替换代码中的颜色值,比如把#BDBDBD改成你想要的默认滑块颜色,#E0E0E0改成轨道颜色。
3. 保存文件后重新编译UWP项目,运行就能看到所有垂直滚动条的颜色已经修改。

仅修改特定控件的滚动条颜色

如果不想全局修改,只想调整某个控件(比如ListView、ScrollView)的滚动条,可以在App.xaml中为该控件设置模板,内部嵌套自定义的ScrollBar样式:

<Application.Resources>
    <Style TargetType="ListView">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListView">
                    <ScrollViewer x:Name="ScrollViewer" VerticalScrollBarVisibility="Auto">
                        <ScrollViewer.Resources>
                            <Style TargetType="ScrollBar">
                                <!-- 这里复制上面的ScrollBar完整样式代码 -->
                            </Style>
                        </ScrollViewer.Resources>
                        <ItemsPresenter/>
                    </ScrollViewer>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Application.Resources>

补充说明

  • 这种方式只对UWP端生效,不会影响其他平台的滚动条样式。
  • 若需要更复杂的样式效果,可以参考UWP原生ScrollBar的默认模板,在此基础上调整细节。
  • 不需要在App.xaml.cs中编写代码,静态XAML样式就能满足需求;如果要动态修改颜色,才需要在后台代码中操作资源字典。

内容的提问来源于stack exchange,提问作者Esteban Chornet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 06:16:17