WPF DataGrid拇指不透明度而未分配整个滚动条样式

时间:2019-04-06 15:43:28

标签: wpf datagrid scrollbar

是否可以在不更改整个滚动条模板的情况下设置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;

(但问题是网格没有这种属性。)

1 个答案:

答案 0 :(得分:1)

您可以使用the solution of CrimsonX在运行时使用名为 PART_VerticalScrollBar ScrollBar

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

请注意,这仅在Window已经渲染的情况下有效。这意味着有可能在渲染之后在代码中设置透明度。一种方法是通过重写:

protected override void OnContentRendered(EventArgs e)