c datagridview перенос строки в ячейке

WPF — Элементы управления WPF — Форматирование и стилизация столбцов DataGrid

Форматировать DataGridTextColumn можно таким же способом, что и элемент TextBlock, устанавливая свойства Foreground, FontFamily, FontSize, FontStyle и FontWeight. Однако DataGridTextColumn не поддерживает абсолютно все свойства, доступные у TextBlock. Например, в нем нельзя установить такое часто применяемое свойство, как Wrapping, чтобы создать столбец, отображающий несколько строк текста. Вместо этого понадобится использовать свойство ElementStyle.

По существу свойство ElementStyle позволяет применить стиль к соответствующему элементу внутри ячейки DataGrid. В случае простого DataGridTextColumn этим элементом будет TextBlock, в случае DataGridCheckBoxColumn — флажок, а в случае DataGridTemplateColumn — любой элемент, который был создан в шаблоне данных.

Ниже приведен простой стиль, включающий перенос текста в столбце:

Чтобы текст переносился, необходимо увеличить высоту строк. К сожалению, элемент управления DataGrid не способен изменять свои размеры так же гибко, как это умеют делать контейнеры компоновки в WPF. Поэтому потребуется задать фиксированную высоту для строк с помощью свойства DataGrid.RowHeight. Эта высота будет применяться ко всем строкам, каким бы ни был объем размещенного внутри них содержимого. На рисунке показан пример, в котором высота строк установлена в 70 единиц:

Чтобы применить один и тот же стиль к множеству столбцов, можно определить его в коллекции Resources и затем ссылаться на него в каждом столбце с использованием StaticResource.

С помощью свойства EditingElementStyle стиль применяется к элементу, который задействован при редактировании столбца. В случае DataGridTextColumn этим элементом будет TextBox.

ElementStyle и ElementEditingStyle и свойства столбцов предоставляют способ форматирования всех ячеек в любом конкретном столбце. Однако в некоторых случаях необходимо применить параметры форматирования к каждой ячейке в каждом столбце. Простейший способ сделать это заключается в конфигурировании стиля для свойства DataGrid.RowStyle. Кроме того, DataGrid имеет небольшой набор дополнительных свойств, которые позволяют форматировать другие части сетки, такие как заголовки столбцов и заголовки строк. Все свойства перечислены ниже:

ColumnHeaderStyle

Элемент TextBlock, используемый для отображения заголовков столбцов в верхней части сетки

RowHeaderStyle

Элемент TextBlock, используемый для отображения заголовков строк

DragIndicatorStyle

Элемент TextBlock, используемый для отображения заголовка столбца во время его перетаскивания в новую позицию

RowStyle

Элемент TextBlock, используемый для отображения обычных строк (строк в столбцах, которые не были настроены специальным образом через свойство ElementStyle соответствующего столбца)

Пытаюсь сделать перенос текста на новую строку в зависимости от ширины колонки в datagrid. Получилось, но в ячейках отображается System.Data.DataRowView. Что я делаю не так?

Данные в таблицу загружаю из БД следующим образом:

  • Вопрос задан более двух лет назад
  • 864 просмотра

Разобрался сам, в Binding нужно было еще указать имя колонки.

Привет уважаемым форумчанам,

кто-нибудь может подсказать как заставить DataGridView выводить текст для всех ячеек в колонке с фиксированной шириной:
1. с переносом строк (WordWrap)
2. так чтобы при этом высота каждой строки подстраивалась под объем текста в ячейке этой колонки в этой строке.

Манипуляции с WrapMode, RowHeight и AutoSizeRowsMode нужного результата не дают — текст выводится в одну строку, переноса строк удается добиться только для редактируемой ячейки.

PS использую Visual Studio C# 2005 Express Edition.

Источник: computermaker.info

Понравилась статья? Поделиться с друзьями:
Ок! Компьютер
Добавить комментарий