WPF toolkit datagrid cell text wrapping

前端 未结 3 635
忘掉有多难
忘掉有多难 2021-01-18 11:32

My WPF datagrid\'s columns are fixed width, which means long text in the rows are cut off. How can I have the text wrap?

相关标签:
3条回答
  • 2021-01-18 12:00

    You can replace the cell with a Textblock with Textwrapping enabled. i.e.

    <dg:DataGridTemplateColumn Header="Description" Width="*">
       <dg:DataGridTemplateColumn.CellTemplate>
           <DataTemplate>
               <TextBlock Text="{Binding Description}" TextWrapping="WrapWithOverflow"/>                                    
           </DataTemplate>
       </dg:DataGridTemplateColumn.CellTemplate>
    </dg:DataGridTemplateColumn>
    
    0 讨论(0)
  • 2021-01-18 12:07

    If you are using a DataGridTextColumn, you need to define the Style for the DataGridTextColumn.ElementStyle

    <dg:DataGridTextColumn Header="SomeLongText" Binding="{Binding MyText}">
      <dg:DataGridTextColumn.ElementStyle>
        <Style TargetType="TextBlock">
          <Setter Property="TextWrapping" Value="Wrap"/>
        </Style>
      </dg:DataGridTextColumn.ElementStyle>
    </dg:DataGridTextColumn>
    

    Full explination can be found at the following http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtextcolumn(v=vs.95).aspx

    0 讨论(0)
  • 2021-01-18 12:09

    If your DataGridTextColumn is being created in the code behind you can set the style and setters this way:

            _dataGridTextColumn.MaxWidth = 550;
            _dataGridTextColumn.ElementStyle = new System.Windows.Style(typeof(TextBlock));
            _dataGridTextColumn.ElementStyle.Setters.Add(new Setter(TextBlock.TextWrappingProperty, TextWrapping.Wrap));
    

    This will cause the text inside the _dataGridTextColumn to wrap as it would inside a TextBlock.

    0 讨论(0)
提交回复
热议问题