Обтекание ячейки сетки данных инструментария WPF - PullRequest
6 голосов
/ 01 октября 2009

Мои столбцы таблицы данных WPF имеют фиксированную ширину, что означает, что длинный текст в строках обрезается. Как мне получить перенос текста?

Ответы [ 3 ]

8 голосов
/ 20 октября 2011

Если вы используете DataGridTextColumn, вам нужно определить стиль для 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>

Полное объяснение можно найти по следующему http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtextcolumn(v=vs.95).aspx

5 голосов
/ 25 декабря 2009

Вы можете заменить ячейку текстовым блоком с включенным Textwrapping. т.е.

<dg:DataGridTemplateColumn Header="Description" Width="*">
   <dg:DataGridTemplateColumn.CellTemplate>
       <DataTemplate>
           <TextBlock Text="{Binding Description}" TextWrapping="WrapWithOverflow"/>                                    
       </DataTemplate>
   </dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>
1 голос
/ 02 мая 2014

Если ваш DataGridTextColumn создается в коде позади, вы можете установить стиль и установщики следующим образом:

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

Это приведет к переносу текста внутри _dataGridTextColumn так же, как и внутри TextBlock.

...