如何在scrollviewer中设置滚动条的粗细

问题描述 投票:0回答:1

如何控制作为

Scrollbar
控件一部分显示在 / 中的水平或垂直
DataGrid
的厚度? 我希望它们显示得比目前显示的“更厚”。

备注:为了在

DataGrid
中显示带有虚拟数据的示例应用程序,下面的屏幕截图基于“Xaml Brewer”示例应用程序,您可以在此处找到它。

我有一个

DataGrid
始终显示垂直和水平滚动条(我删除了所有非必要的 XAML 代码):

<Page
    xmlns:controls="using:CommunityToolkit.WinUI.UI.Controls"
    mc:Ignorable="d">

    <Grid>

        <controls:DataGrid AutoGenerateColumns="False" 
                           VerticalScrollBarVisibility="Visible"
                           HorizontalScrollBarVisibility="Visible">

            <controls:DataGrid.Columns>
            </controls:DataGrid.Columns>

        </controls:DataGrid>

    </Grid>

</Page>

这是滚动条正常显示的方式,即 DataGrid 具有焦点,但鼠标当前悬停在其中一个滚动条上。它们显示得很薄,因此我的应用程序的用户有时无法识别它们:

enter image description here

这就是当鼠标

is
当前悬停在其中一个(在本例中为底部的水平滚动条)上时显示 Scrollbar 的方式。现在这个显示得更厚一些,因此更容易看到:

enter image description here

有没有办法显示滚动条更粗/设置它们的厚度,或者指定它们应该始终以悬停在滚动条上时的显示方式显示(参见上面的第二个屏幕截图,在这种情况下它们显示更粗)?

xaml datagrid scrollbar winui-3 winui
1个回答
3
投票

有没有办法让滚动条显示更粗/设置其厚度

您也许可以重新设置

ScrollBar
的样式,但空的
ScrollBar
样式应该会为您提供类似 WPF 的
ScrollBar

<controls:DataGrid>
    <controls:DataGrid.Resources>
        <Style TargetType="ScrollBar" />
    </controls:DataGrid.Resources>
</controls:DataGrid>

指定它们应始终以将鼠标悬停在其上时的显示方式显示

我为此发布了一个名为 AK.Toolkit.WinUI3.ScrollBarExtensions 的 NuGet 包。尝试一下,看看是否符合您的要求。

<Page
    :
    xmlns:controls="using:CommunityToolkit.WinUI.UI.Controls"
    xmlns:toolkit="using:AK.Toolkit.WinUI3" />

    <controls:DataGrid
        toolkit:ScrollBarExtensions.KeepHorizontalExpanded="True"
        toolkit:ScrollBarExtensions.KeepVerticalExpanded="True"
        HorizontalScrollBarVisibility="Visible"
        VerticalScrollBarVisibility="Visible" />

</Page>
© www.soinside.com 2019 - 2024. All rights reserved.