WPF DataGrid Thumb不透明度而不指定整个滚动条样式

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

是否可以在不更改整个滚动条模板的情况下设置WPF数据网格滚动条拇指不透明度?我一直在寻找,但我看到它是基于设置整个滚动条模板的相当复杂的解决方案,而我只需要更改一个属性。到目前为止我尝试过的是

            <DataGrid.Resources>
                <Style TargetType="Thumb">
                    <Setter Property="Opacity" Value="0.5"/>
                </Style>
            </DataGrid.Resources>

不起作用,

            <DataGrid.Resources>
                <Style TargetType="ScrollBar">
                    <Setter Property="Track.Thumb.Opacity" Value="0.5"/>
                </Style>
            </DataGrid.Resources>

给出“嵌套类型不支持错误”。

或者,也许可以从代码隐藏编写类似的东西

myGrid.VerticalScrollBar.Track.Thumb.Opacity = 0.5;

(但问题是网格没有这样的属性..)

?

wpf datagrid scrollbar
1个回答
1
投票

您可以使用the solution of CrimsonX在运行时通过它的名称PART_VerticalScrollBar获取ScrollBar

ScrollBar scrollBar = FindChild<ScrollBar>(myGrid, "PART_VerticalScrollBar");
scrollBar.Track.Thumb.Opacity = 0.1;

请注意,这仅适用于已经渲染Window的情况。这意味着可以在渲染后在代码中设置opaticity。一种方法是覆盖:

protected override void OnContentRendered(EventArgs e)
© www.soinside.com 2019 - 2024. All rights reserved.