当水平滚动条可见时,如何修改DataGrid中列的宽度? [英] How to fix width of Column in DataGrid when Horizontal Scrollbar is Visible?
问题描述
我使用带有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屋!