我有DataHrid的ColumnHeaderStyle,现在我不想调整列的大小

时间:2017-09-25 12:17:56

标签: wpf

如何调整datagrid' sColumns的大小? 我ColumnHeaderStyle Datagrid,现在我无法调整列数! 请帮帮我!

我对这段代码感兴趣。但它不起作用 CanUserResizeColumns ="真"

<Style x:Key="ColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}" >
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="DataGridColumnHeader">
                <StackPanel >
                    <DockPanel>
                        <Image DockPanel.Dock="Left" Source="/Images/Photo.png"/>
                        <TextBox  Name="txtCaption" Text="{TemplateBinding Content}"  />
                    </DockPanel>
                </StackPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>          

<DataGrid Name="mainGrid" AutoGenerateColumns="False" IsReadOnly="True" AlternatingRowBackground="#FFEBEBFF"
                  ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}">
</DataGrid>

1 个答案:

答案 0 :(得分:0)

在您的情况下:您正在使用ColumnHeaderStyle,因此它限制了调整大小。

默认情况下,CanUserResizeColumns为true。

使用下面的代码代替使用ColumnHeaderStyle:

                 <DataGridTextColumn Header="Header1"  Width="auto" IsReadOnly="True"  Binding="{myUserControls:CultureAwareBinding Path=xxxxx}">
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="TextAlignment" Value="Right"></Setter>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                    <DataGridTextColumn.HeaderStyle>
                        <Style TargetType="DataGridColumnHeader">
                            <Setter Property="HorizontalContentAlignment" Value="Center" />
                        </Style>
                    </DataGridTextColumn.HeaderStyle>