0

DataGrid で列のサイズを次のように定義しました。

<DataGrid x:Name="DG" ItemsSource="{Binding X}" AutoGenerateColumns="False" ColumnWidth="*">

これは、特定の列の内容全体を表示するために 2 つの列の間を押す瞬間まで正常に機能します。その後、彼はこの列の私の定義を知らず、その内容によって必要以上に列を増やします。

なぜこれが起こっているのですか、どうすればそれを防ぐことができますか?

4

1 に答える 1

1

このサイトのスタイルを使用してこれを防ぐことができます: http://msdn.microsoft.com/en-us/library/ff506248.aspxから削除します:PART_LeftHeaderGripperPART_RightHeaderGripper.

<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>
于 2013-02-06T19:17:20.063 に答える