2017-09-25 43 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