2017-09-25 127 views
1

如何调整datagrid的列的大小? 我有ColumnHeaderStyleDatagrid现在我不能调整列! 请帮帮我!我有Datagrid的ColumnHeaderStyle和现在我不能调整大小列

我饶过这段代码。但它不工作 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> 
+0

代替使用ColumnHeaderStyle使用 “DataGridTextColumn.HeaderStyle” 代码: <形式的TargetType = “DataGridColumnHeader”>

+0

如果你使用这样的手段,你可以调整大小 –

+0

这是解决方案https://stackoverflow.com/questions/8414725/wpf-datagrid-column-header-resize-with-custom-style – Mahrooy

回答

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> 

+0

我有图像和文本框在我的风格 – Mahrooy

+0

我没有得到你....你能解释你确切的问题 –

+0

我会显示(在标题)每列的照片。它的作品,但现在我不能再调整大小列 – Mahrooy

相关问题