繁体   English   中英

如何在水平滚动条可见时修复DataGrid中Column的宽度?

[英]How to fix width of Column in DataGrid when Horizontal Scrollbar is Visible?

我像这样使用带有datagrid的复杂头。 但是我遇到了滚动条可见性的问题,它也占用了一个空间,因此宽度不能与网格完美匹配。 我的网格就像<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数据网格

 <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解决列的匹配宽度? 在此输入图像描述

UPDATE

尽管我设置了宽度,它仍然保留了空间。

在此输入图像描述

更新2

我不知道滚动条成功调整大小但空间仍然存在 在此输入图像描述

首先,您可以隐藏ScrollBar的可见性,如下所示:

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

其次,您可以为ScrollBar设置固定的Width

<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM