在列之间单击以修复大小,消除了我的大小设置—WPF DataGrid
我在DataGrid中以以下方式定义了列的大小:在列之间单击以修复大小,消除了我的大小设置—WPF DataGrid,wpf,datagrid,Wpf,Datagrid,我在DataGrid中以以下方式定义了列的大小: <DataGrid x:Name="DG" ItemsSource="{Binding X}" AutoGenerateColumns="False" ColumnWidth="*"> 这样做很好,直到我按下两列之间的按钮查看某一列的全部内容时,他才知道我对该列的定义,并将该列的内容增加到不必要的程度。 为什么会发生这种情况,以及如何防止这种情况?您可以通过使用此站点的样式来防止这种情况:并从中删除:PART\u LeftHea
<DataGrid x:Name="DG" ItemsSource="{Binding X}" AutoGenerateColumns="False" ColumnWidth="*">
这样做很好,直到我按下两列之间的按钮查看某一列的全部内容时,他才知道我对该列的定义,并将该列的内容增加到不必要的程度。
为什么会发生这种情况,以及如何防止这种情况?您可以通过使用此站点的样式来防止这种情况:并从中删除:
PART\u LeftHeaderGripper
和PART\u righheadergripper
<Window.Resources>
...
<!--Style and template for the DataGridColumnHeader.-->
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="VerticalContentAlignment"
Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid>
<Border x:Name="columnHeaderBorder"
BorderThickness="1"
Padding="3,0,3,0">
<Border.BorderBrush>
<LinearGradientBrush EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop Color="{DynamicResource BorderLightColor}"
Offset="0" />
<GradientStop Color="{DynamicResource BorderDarkColor}"
Offset="1" />
</LinearGradientBrush>
</Border.BorderBrush>
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop Color="{DynamicResource ControlLightColor}"
Offset="0" />
<GradientStop Color="{DynamicResource ControlMediumColor}"
Offset="1" />
</LinearGradientBrush>
</Border.Background>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border>
<!--<Thumb x:Name="PART_LeftHeaderGripper"
HorizontalAlignment="Left"
Style="{StaticResource ColumnHeaderGripperStyle}" />
<Thumb x:Name="PART_RightHeaderGripper"
HorizontalAlignment="Right"
Style="{StaticResource ColumnHeaderGripperStyle}" />-->
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop Color="{DynamicResource ControlLightColor}"
Offset="0" />
<GradientStop Color="{DynamicResource ControlMediumColor}"
Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
...
</Window.Resources>
...
...
您必须从microsoft站点复制样式(链接到您在我的答案中找到的此站点),并且必须找到DataGridColumnHeader的样式
,并将其替换为我的样式。