如何增加Datagrid Scrollbar的大小?

时间:2014-07-23 07:16:15

标签: wpf datagrid wpf-controls scrollbar

我有一个Datagrid,它在Runtime上显示数据,因为它有很多数据,它本身带有滚动条,但尺寸较小。任何人都可以告诉如何更改滚动条的大小并使其更大?

<DataGrid x:Name="DgUnitVerReefer" HorizontalAlignment="Center" SelectionMode="Single"      SelectionUnit="FullRow" Margin="20,94,26,0" IsReadOnly="True" AutoGenerateColumns="False"     Visibility="Visible" VerticalAlignment="Top" Height="334"      HorizontalGridLinesBrush="#FFA4C4EA" FontFamily="Microsoft New Tai Lue" AlternatingRowBackground="#FFA4C4EA" MouseDoubleClick="DgUnitVerReefer_MouseDoubleClick" FontSize="16" Width="387">
        <DataGrid.Columns>
            <DataGridTextColumn Header="" Binding="{Binding Path= UNIT_NUMBER}" Width="350" />
        </DataGrid.Columns>
</DataGrid>

然后在window_loaded中加载数据并分配给datagrid。

   DgUnitVerReefer.DataContext = objVerifyUnit.DtLovReefer.DefaultView;
   DgUnitVerReefer.ItemsSource = objVerifyUnit.DtLovReefer.DefaultView;
   DgUnitVerReefer.DisplayMemberPath = "UNIT_NUMBER";
   DgUnitVerReefer.SelectedValuePath = "UNI_ID";

在运行它时显示尺寸较小的滚动条,如何更改其大小?

2 个答案:

答案 0 :(得分:7)

您可以在ScrollBar级别为DataGrid类型应用样式。我们应该对Trigger属性使用Orientation来仅将样式应用于垂直滚动条:

<DataGrid.Resources>
    <Style TargetType="ScrollBar">
        <Style.Triggers>
            <Trigger Property="Orientation" Value="Vertical">
                <Setter Property="Width" Value="50"/>
            </Trigger>
        </Style.Triggers>                   
    </Style>
</DataGrid.Resources>

对于水平滚动条,我们需要设置Height,而触发器的ValueHorizontal

答案 1 :(得分:0)

King King solution 不起作用是您想要 reduce the width of the ScrollBar。在这种情况下,您还应该设置 MinWidth 属性。

另一种基于 this response 的解决方案是修改 SystemParameters.VerticalScrollBarWidth 属性:

<DataGrid.Resources>
    <system:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">5</system:Double>
</DataGrid.Resources>