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