更改DataGrid中禁用的滚动条背景

时间:2015-12-10 14:21:27

标签: c# wpf xaml datagrid

首先,我要做的是:我有一个带有一列和x行的WPF数据网格。我有一个样式触发器,只要ScrollViewer.VerticalScrollBarVisibilityVisible,就会将IsMouseOver设置为True。它按预期工作,但问题是,列将根据滚动条的上限(滚动条宽度5 px)调整大小。所以我决定设置一个填充到我的网格,当显示滚动条时,填充从5变为0。

它工作得很好,但如果我的行不超过数据网格的边框,则会显示灰色禁用的背景。我可以将ScrollViewer.VerticalScrollBarVisibility设置为Auto,然后如果我的数据网格中有足够的空间,则背景不会显示,但是填充会调整列的大小(因为没有显示的5px滚动条)

所以我决定坚持使用Visible而不是Auto设置,并尝试使这个禁用的滚动条背景透明。这是可能的,还是可以通过另一种解决方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。快速而肮脏:

  1. 从此项目中获取样式:http://www.codeproject.com/Articles/41787/Creating-a-Blend-like-Scrollbar
  2. 将样式信息从Scrollbar.xml复制到您想要的项目
  3. 使用x:Key="NAME"
  4. 为Style-Tag指定一个名称(因此不是每个滚动条的样式都会这样!)
  5. 转到DataGrid并在datagrid-opening和closing标签之间发布此代码:

  6. 就是这样!您可以根据需要设置滚动条的样式,它将在您的数据网格中更改(并且就在那里!)