在列之间单击以修复大小,消除了我的大小设置—WPF DataGrid

在列之间单击以修复大小,消除了我的大小设置—WPF DataGrid,wpf,datagrid,Wpf,Datagrid,我在DataGrid中以以下方式定义了列的大小: <DataGrid x:Name="DG" ItemsSource="{Binding X}" AutoGenerateColumns="False" ColumnWidth="*"> 这样做很好,直到我按下两列之间的按钮查看某一列的全部内容时,他才知道我对该列的定义,并将该列的内容增加到不必要的程度。 为什么会发生这种情况,以及如何防止这种情况?您可以通过使用此站点的样式来防止这种情况:并从中删除:PART\u LeftHea

我在DataGrid中以以下方式定义了列的大小:

<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的样式
,并将其替换为我的样式。