当水平滚动条可见时,如何修改DataGrid中列的宽度? [英] How to fix width of Column in DataGrid when Horizontal Scrollbar is Visible?

查看:134
本文介绍了当水平滚动条可见时,如何修改DataGrid中列的宽度?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用带有datagrid的复杂标题,如 。但是我有滚动条可见性的问题,它也花费了一个空间,所以宽度不能完全匹配网格。我的网格就像这样在< Column.Definition>

I using the complex header with datagrid like this. But I got problem of the scrollbar visibility it also spend a space so the width can not perfectly match with the grid. My Grid is just like this in <Column.Definition>

  <ColumnDefinition Width="{Binding ElementName=Column1, Path=ActualWidth}"/>
  <ColumnDefinition Width="{Binding ElementName=Column2, Path=ActualWidth}"/>
  <ColumnDefinition Width="{Binding ElementName=Column3, Path=ActualWidth}"/>
  <ColumnDefinition Width="{Binding ElementName=Column4, Path=ActualWidth}"/>
  <ColumnDefinition Width="{Binding ElementName=Column5, Path=ActualWidth}"/>
  <ColumnDefinition Width="{Binding ElementName=Column6, Path=ActualWidth}"/>
  <ColumnDefinition Width="{Binding ElementName=Column7, Path=ActualWidth}"/>
... till column 29

Anda我有数据网格 Column.Definition 像这样

Anda I have data grid for Column.Definition like this

 <DataGrid.Columns>
<mui:DataGridTextColumn x:Name="Column1"  Width="50" Header="Segmen"  Binding="{Binding B4R1,UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
<mui:DataGridTextColumn x:Name="Column2" Width="50" Header="Fisik" Binding="{Binding B4R2,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}" />
<mui:DataGridTextColumn x:Name="Column3" Width="50" Header="Sensus" Binding="{Binding B4R3,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}"/>
<mui:DataGridTextColumn x:Name="Column4" Width="50" Header="Tempat Tinggal" Binding="{Binding B4R4,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}" />
<mui:DataGridTextColumn x:Name="Column5" Width="50" Header="Campuran" Binding="{Binding B4R5,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}" />
.... till column29

结果仍然如下所示:

如何解决列的匹配宽度与scollbar可见这样?

How I can resolve the match width of column with scollbar visible like this?

它仍然保留空间,虽然我已经设置了宽度..

It still keep space in that although I have set the width..

我不知道滚动条成功调整大小,但空间仍然存在

I don't know the scrollbar successfully resized but the space is still there

推荐答案

首先,您可以隐藏 ScrollBar 像这样:

Firstly, you can hide the Visibility of ScrollBar like this:

<DataGrid Name="dataGrid"
          ScrollViewer.VerticalScrollBarVisibility="Hidden" ... />

其次,您可以设置固定的宽度对于 ScrollBar

Secondly, you can set a fixed Width for ScrollBar:

<Window x:Class="MyClass.MainWindow"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"

<DataGrid Name="dataGrid">
    <DataGrid.Resources>
        <sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">20</sys:Double>
        <sys:Double x:Key="{x:Static SystemParameters.HorizontalScrollBarHeightKey}">20</sys:Double>
    </DataGrid.Resources>
...
</DataGrid>

第三,您可以设置 ScrollBar

<DataGrid.Resources>
    <Style TargetType="{x:Type ScrollBar}">
        <Style.Triggers>                       
            <Trigger Property="Orientation" Value="Vertical">
                <Setter Property="Width" Value="10" />
                <Setter Property="MinWidth" Value="10" />
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.Resources>

这篇关于当水平滚动条可见时,如何修改DataGrid中列的宽度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆