是否可以在不更改整个滚动条模板的情况下设置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;
(但问题是网格没有这样的属性..)
?
您可以使用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)