如何在 UWP ScrollViewer 中自定义水平滚动拇指

Posted

技术标签:

【中文标题】如何在 UWP ScrollViewer 中自定义水平滚动拇指【英文标题】:How to customize horizontal scroll thumb in UWP ScrollViewer 【发布时间】:2021-04-24 19:45:26 【问题描述】:

在 UWP ScrollViewer 中自定义颜色和宽度水平滚动拇指所需的建议。我已尝试按照以下论坛中的说明自定义滚动拇指,

https://social.msdn.microsoft.com/Forums/en-US/476b95de-896c-4117-96aa-6e7365e3defe/uwp-xaml-chanaging-the-thumb-color-of-scrollbarscrollviewer?forum=wpdevelop

但是,它似乎只适用于垂直拇指。

【问题讨论】:

【参考方案1】:

通过测试,您提到的链接设置 SolidColorBrush 的方式效果很好,这也适用于水平滚动拇指。

对于拇指的宽度,您可以通过ViewportSize 更改它。 请检查以下步骤:

    打开文档大纲窗格,右键单击您的 ScrollViewer 控件。 选择编辑模板>编辑副本选项。然后 ScrollViewer 控件的默认样式将应用于您的 ScrollViewer 控件。 找到名为HorizontalScrollBar 的ScrollBar 控件。然后更改 ViewportSize。

请参考以下代码:

<Page …>
<Page.Resources>       
  <Style x:Key="ScrollViewerStyle1" TargetType="ScrollViewer">
    …….
      <ScrollBar x:Name="HorizontalScrollBar" IsTabStop="False" Maximum="TemplateBinding ScrollableWidth" Orientation="Horizontal" Grid.Row="1" ViewportSize="10" Value="TemplateBinding HorizontalOffset" Visibility="TemplateBinding ComputedHorizontalScrollBarVisibility"/>
       …….
      </Style>
   </Page.Resources>

<Grid Background="ThemeResource ApplicationPageBackgroundThemeBrush">
        <ScrollViewer Style="StaticResource ScrollViewerStyle1" 
              HorizontalScrollMode="Enabled" HorizontalScrollBarVisibility="Visible"
              Height="200" Width="200">
            <ScrollViewer.Resources>
                <SolidColorBrush x:Key="ScrollBarThumbFill" Color="Gold"/>
                <SolidColorBrush x:Key="ScrollBarThumbFillPointerOver" Color="Orange"/>
                <SolidColorBrush x:Key="ScrollBarThumbFillPressed" Color="Red"/>
                <SolidColorBrush x:Key="ScrollBarThumbFillDisabled" Color="Pink"/>
            </ScrollViewer.Resources>
            <Image Source="Assets/testP.jpg" Height="400" Width="400"/>
        </ScrollViewer>
    </Grid>
</Page>

【讨论】:

以上是关于如何在 UWP ScrollViewer 中自定义水平滚动拇指的主要内容,如果未能解决你的问题,请参考以下文章

SHIFT +滚动到ScrollViewer UWP中水平滚动

UWP - 父控件拦截指针事件(其中子控件为 ScrollViewer)

win2d图片平铺无法在UWP Scrollviewer中运行

使用ScrollViewer调整UWP Canvas中的UI元素大小

WPF 如何流畅地滚动ScrollViewer 简单实现下

WPF 如何流畅地滚动ScrollViewer