Колонки¶
Контрол TreeList поддерживает несколько колонок данных, тогда как TreeView отображает значения в одной колонке.
Колонка в контроле TreeView¶
Контрол TreeView отображает данные в одной колонке. Эта колонка нельзя удалить. Значения, отображаемые в колонке TreeView, извлекаются из поля/свойства, указанного членом TreeViewControl.DataFieldName.
Свойство TreeViewControl.CellWidth позволяет настраивать ширину этой колонки. Дополнительную информацию смотрите по следующей ссылке: Ширина колонки.
Создание колонок TreeList¶
Колонки TreeList инкапсулируются классом TreeListColumn, который является потомком класса ColumnBase. Класс GridColumn (колонка в DataGridControl) также является потомком ColumnBase. Таким образом, колонки в контролах DataGrid и TreeList имеют много общих членов API.
Контрол TreeList не создаёт колонки автоматически после привязки контрола к источнику данных. Существует четыре подхода к созданию колонок:
-
Ручное создание колонок
Вы можете определить все колонки TreeList вручную в коллекции
TreeList.Columns(в XAML или code-behind). При таком подходе у вас есть доступ к созданным объектам колонок по имени в коде.Следующий пример создаёт две колонки TreeList и настраивает формат отображения значений второй колонки:
xmlns:mxtl="https://schemas.eremexcontrols.net/avalonia/treelist" <mxtl:TreeListControl Name="treeList1" > <mxtl:TreeListControl.Columns> <mxtl:TreeListColumn Name="colName" FieldName="Name" /> <mxtl:TreeListColumn Name="colBirthdate" FieldName="Birthdate" > <mxtl:TreeListColumn.EditorProperties> <mxe:TextEditorProperties DisplayFormatString="yyyy-MM-dd"/> </mxtl:TreeListColumn.EditorProperties> </mxtl:TreeListColumn> </mxtl:TreeListControl.Columns> </mxtl:TreeListControl> -
Автоматическое создание колонок
Включите параметр
TreeListControl.AutoGenerateColumns, чтобы автоматически создавать недостающие колонки после привязки контрола к источнику данных. Вы можете применять определённые атрибуты (из пространств имёнSystem.ComponentModelиSystem.ComponentModel.DataAnnotations) к свойствам бизнес-объекта, чтобы управлять автоматическим созданием колонок и настраивать параметры автоматически создаваемых колонок (например, отображаемое имя и порядок колонки). Смотрите Автоматическое создание колонок. -
Сочетание ручного создания колонок и автоматической генерации
Вы можете сочетать оба вышеописанных подхода: создать необходимые колонки вручную в коллекции
TreeList.Columns, а затем включить параметрTreeListControl.AutoGenerateColumns, чтобы делегировать создание остальных колонок контролу TreeList. -
Создание колонок из View Model
TreeList может создавать колонки из источника колонок, определённого во View Model. В этом сценарии используйте свойства
ColumnsSourceиColumnTemplate. Смотрите Создание колонок из View Model.
Привязка колонок к данным¶
Свойство TreeListColumn.FieldName позволяет привязать колонку к полю в базовой таблице данных или к публичному свойству бизнес-объекта. После привязки колонка получает значения из источника данных.
TreeList также позволяет создавать несвязанные колонки, значения которых должны предоставляться вручную, через событие TreeListControl.CustomUnboundColumnData. Дополнительную информацию смотрите в разделе Несвязанные колонки.
Не рекомендуется привязывать несколько колонок TreeList к одному и тому же полю/свойству данных.
Следующий пример создаёт колонки TreeList и привязывает их к данным.
xmlns:mxtl="https://schemas.eremexcontrols.net/avalonia/treelist"
<mxtl:TreeListControl Grid.Column="3" Width="200" Name="treeListUnbound"
HorizontalAlignment="Stretch">
<mxtl:TreeListControl.Columns>
<mxtl:TreeListColumn Name="colFirstName" FieldName="FirstName"
Header="First Name" Width="*" AllowSorting="False" />
<mxtl:TreeListColumn Name="colLastName" FieldName="LastName"
Header="Last Name" Width="*"/>
<mxtl:TreeListColumn Name="colCity" FieldName="City"
Header="City" Width="*" ReadOnly="True" />
<mxtl:TreeListColumn Name="colPhone" FieldName="Phone"
Header="Phone" Width="*"/>
</mxtl:TreeListControl.Columns>
</mxtl:TreeListControl>
using Eremex.AvaloniaUI.Controls.TreeList;
TreeListColumn colFirstName = new TreeListColumn()
{
FieldName = "FirstName", Header = "First Name", AllowSorting = false,
Width= new GridLength(1, GridUnitType.Star)
};
treeList1.Columns.Add(colFirstName);
Автоматическое создание колонок¶
Установите свойство AutoGenerateColumns в значение true (значение по умолчанию — false), чтобы включить автоматическое создание колонок для свойств в источнике данных. Когда AutoGenerateColumns установлено в true, контрол TreeList получает публичные свойства из источника данных, создаёт колонки и привязывает их к этим свойствам. Если коллекция Columns контрола уже содержит колонку, привязанную к определённому свойству/полю, дополнительная колонка, привязанная к тому же свойству/полю, не создаётся автоматически.
События AutoGeneratingColumn и AutoGeneratedColumns позволяют настраивать автоматически создаваемые колонки. Событие AutoGeneratingColumn возникает, когда автоматически создаваемая колонка вот-вот будет добавлена в коллекцию Columns. Событие позволяет предотвратить добавление колонки в коллекцию.
Событие AutoGeneratedColumns возникает после того, как все колонки были автоматически созданы.
Когда вы назначаете контролу другой источник данных, TreeList сначала удаляет колонки, которые были ранее созданы автоматически, а затем автоматически создаёт колонки для нового источника данных.
Использование атрибутов для настройки параметров автоматически создаваемых колонок¶
Вы можете применять определённые атрибуты (из пространств имён System.ComponentModel и System.ComponentModel.DataAnnotations) к свойствам бизнес-объекта (записи источника данных), чтобы настраивать статус видимости, параметры отображения и поведения для соответствующих автоматически создаваемых колонок TreeList. Поддерживаются следующие атрибуты:
Атрибут Browsable¶
Атрибут System.ComponentModel.BrowsableAttribute управляет автоматическим созданием колонок. Примените атрибут Browsable(false) к определённым свойствам, чтобы предотвратить автоматическое создание соответствующих колонок.
using CommunityToolkit.Mvvm.ComponentModel;
using System.ComponentModel;
public partial class MyBusinessObject : ObservableObject
{
[ObservableProperty]
[property: Browsable(false)]
public int serviceId = "";
}
Атрибут System.ComponentModel.BrowsableAttribute эквивалентен использованию атрибута System.ComponentModel.DataAnnotations.DisplayAttribute с параметром AutoGenerateField.
Атрибут Display¶
Атрибут System.ComponentModel.DataAnnotations.DisplayAttribute — это атрибут общего назначения, который управляет автоматическим созданием колонок и параметрами отображения автоматически создаваемых колонок. Атрибут имеет следующие параметры, поддерживаемые контролом TreeList:
-
AutoGenerateField— Определяет, следует ли автоматически создавать соответствующую колонку. -
Order— Определяет видимую позицию автоматически создаваемой колонки (ColumnBase.VisibleIndex). -
Name— Определяет заголовок автоматически создаваемой колонки (ColumnBase.Header). -
ShortName— Эквивалентен параметруName. -
GroupName— Определяет имя группы, связываемой с автоматически создаваемой колонкой. Это значение атрибута используется для инициализации свойстваTreeListColumn.BandName, если параметрTreeListControl.AutoGenerateBandsустановлен в значениеtrue(по умолчанию).Когда TreeList встречает
DisplayAttribute.GroupName, он проверяет наличие существующей группы с совпадающим именем (TreeListBand.BandName). Если такой группы нет, контрол автоматически создаёт группу и инициализирует её свойствоTreeListBand.BandNameзначениемDisplayAttribute.GroupName.Параметр
DisplayAttribute.GroupNameтакже поддерживает вложенные группы. Используйте символ '/' для разделения родительской и дочерней групп (например, "ParentBandName/ChildBandName"). Чтобы включить '/' как буквальный символ, используйте "//".
using CommunityToolkit.Mvvm.ComponentModel;
using System.ComponentModel.DataAnnotations;
public partial class MyBusinessObject : ObservableObject
{
[ObservableProperty]
[property: Display(Name = "Birth date", Order=2, GroupName="General")]
public DateTime? birthdate = null;
[ObservableProperty]
[property: Display(GroupName = "Details/Address")]
public string country { get; set; }
[ObservableProperty]
[property: Display(GroupName = "Details/Contact")]
public string phone { get; set; }
}
Атрибут DisplayName¶
Атрибут System.ComponentModel.DisplayNameAttribute позволяет инициализировать заголовок автоматически создаваемой колонки (ColumnBase.Header).
using CommunityToolkit.Mvvm.ComponentModel;
using System.ComponentModel;
public partial class MyBusinessObject : ObservableObject
{
[ObservableProperty]
[property: DisplayName("Birth date")]
public DateTime? birthdate = null;
}
Атрибут System.ComponentModel.DisplayNameAttribute эквивалентен использованию атрибута System.ComponentModel.DataAnnotations.DisplayAttribute с параметром Name или ShortName.
Атрибут Editable¶
Атрибут System.ComponentModel.EditableAttribute, применённый к свойству, создаёт нередактируемую колонку. Пользователи не могут открывать встраиваемые редакторы, а следовательно, выделять и копировать текст.
using CommunityToolkit.Mvvm.ComponentModel;
using System.ComponentModel;
public partial class MyBusinessObject : ObservableObject
{
[ObservableProperty]
[property: Editable(false)]
public int parentId = -1;
}
Атрибут Readonly¶
Атрибут System.ComponentModel.ReadonlyAttribute, применённый к свойству, создаёт колонку только для чтения. Пользователи могут выделять и копировать текст в колонках только для чтения, но не могут редактировать значения.
using CommunityToolkit.Mvvm.ComponentModel;
using System.ComponentModel;
public partial class MyBusinessObject : ObservableObject
{
[ObservableProperty]
[property: ReadOnly(true)]
public int id = -1;
}
Создание колонок из View Model¶
Вы можете заполнить контрол TreeList колонками из источника колонок, определённого во View Model. Источник колонок — это коллекция бизнес-объектов, из которой создаются объекты TreeListColumn согласно указанному шаблону. Создание колонок из View Model обеспечивают следующие члены API:
-
TreeListControl.ColumnsSource— Коллекция бизнес-объектов, используемая для создания колонок treelist согласно шаблонуColumnTemplate. -
TreeListControl.ColumnTemplate— Шаблон, инициализирующий объектTreeListColumnиз бизнес-объектов, хранящихся в источнике колонок.
Перемещение колонок¶
Используйте свойство TreeListColumn.VisibleIndex, чтобы задать визуальную позицию колонки. Чтобы скрыть колонку, установите её свойство TreeListColumn.VisibleIndex в значение -1, либо установите свойство IsVisible в значение false.
Поведение контрола по умолчанию позволяет пользователю переупорядочивать колонки. Используйте следующие свойства, чтобы запретить перемещение колонок:
TreeListControl.AllowColumnMoving— Определяет, может ли пользователь перемещать любую колонку.TreeListColumn.AllowMoving— Определяет, может ли пользователь перемещать конкретную колонку.
Ширина колонки¶
Вы можете использовать следующие свойства для управления шириной колонок в контролах TreeList и TreeView:
Параметры TreeList:
TreeListColumn.Width— Ширина колонки, заданная значением типаGridLength.TreeListColumn.MinWidth— Минимальная ширина колонки.TreeListColumn.MaxWidth— Максимальная ширина колонки.
Параметры TreeView:
TreeViewControl.CellWidth— Ширина ячеек контрола, заданная значением типаGridLength.
Свойства TreeListColumn.Width и TreeViewControl.CellWidth имеют тип GridLength. Тип GridLength позволяет задавать ширину колонки следующим образом:
- Фиксированная ширина (количество пикселей).
- Взвешенная доля доступного пространства (нотация star).
- Значение
Auto— Активирует автоматический расчёт ширины колонки для соответствия содержимому ячеек. При вертикальной прокрутке контрола он может увеличивать ширину колонки, чтобы вместить новые значения ячеек, появившиеся во время прокрутки.
xmlns:mxtl="https://schemas.eremexcontrols.net/avalonia/treelist"
<mxtl:TreeListControl Name="treeList1">
<mxtl:TreeListControl.Columns>
<mxtl:TreeListColumn Name="colFirstName"
FieldName="FirstName" Header="First Name" Width="*"/>
<mxtl:TreeListColumn Name="colLastName"
FieldName="LastName" Header="Last Name" Width="2*"/>
<mxtl:TreeListColumn Name="colPhone"
FieldName="Phone" Header="Phone" Width="*"/>
</mxtl:TreeListControl.Columns>
</mxtl:TreeListControl>
Следующие свойства управляют операциями изменения размера колонок, выполняемыми пользователями.
TreeListControl.AllowColumnResizing— Определяет, может ли пользователь изменять размер любой колонки.TreeListColumn.AllowResizing— Определяет, может ли пользователь изменять размер конкретной колонки.
Колонка иерархии¶
Колонка иерархии в контроле TreeList отображает иерархию узлов, а также иконки узлов и встроенные флажки.
По умолчанию колонка иерархии — это первая видимая колонка в TreeList. Если вы перетащите другую колонку на первую позицию, эта колонка станет новой колонкой иерархии.
Свойство TreeListControl.TreeColumnFieldName позволяет назначить любую колонку в качестве колонки иерархии. Это свойство указывает имя поля (ColumnBase.FieldName) колонки, которая должна отображать иерархию узлов.
Затем с помощью свойства ColumnBase.VisibleIndex вы можете изменить положение этой колонки среди других колонок (а значит, и положение иерархии узлов).
Следующий пример назначает колонку colDescription в качестве колонки иерархии и размещает её на второй позиции:
<mxtl:TreeListControl x:Name="treeList" TreeColumnFieldName="Description">
<mxtl:TreeListColumn FieldName="IsUrgent" Header="Urgent" VisibleIndex="0" />
<mxtl:TreeListColumn Name="colDescription" FieldName="Description" Width="*" VisibleIndex=1 />
<!-- ... -->
</mxtl:TreeListControl>
Best Fit¶
Функция Best Fit изменяет размер колонок до их оптимальной ширины — минимальной ширины, необходимой для полного отображения содержимого колонки (значений и заголовков) без обрезки.
Best Fit рассчитывает оптимальную ширину колонок в пикселях и присваивает эти значения свойствам TreeListColumn.Width, заменяя ранее установленные значения ширины.
Note
Best Fit заменяет исходную ширину колонок рассчитанными абсолютными значениями в пикселях. Если ширина колонки ранее была установлена в значение Auto или значение звёздочки (*), она также заменяется на абсолютную ширину в пикселях. Исходную ширину можно восстановить с помощью команды сброса ширины колонки.
Пользователи могут вызывать функциональность Best Fit следующими способами:
-
Дважды щёлкнуть по правому краю заголовка колонки.
-
Щёлкнуть правой кнопкой мыши по заголовку колонки и выбрать команду Best Fit или Best Fit All Columns в контекстном меню.
- Команда Best Fit — Изменяет размер выбранной колонки до её оптимальной ширины.
- Команда Best Fit All Columns — Изменяет размер всех колонок до их оптимальной ширины.
Включение и отключение операций Best Fit¶
Функциональность Best Fit включена по умолчанию. Вы можете использовать следующие свойства для управления операциями Best Fit для всех колонок и отдельных колонок.
TreeListControl.AllowBestFit(по умолчаниюtrue) — Определяет, включены ли операции Best Fit для всех колонок TreeList. Вы можете переопределить этот глобальный параметр для отдельных колонок с помощью свойстваTreeListColumn.AllowBestFit.TreeListColumn.AllowBestFit(по умолчаниюnull) — Определяет, включены ли операции Best Fit для конкретной колонки. Если свойствоTreeListColumn.AllowBestFitустановлено в значениеnull, фактический параметр определяется глобальным свойствомTreeListControl.AllowBestFit.
Режим Best Fit¶
Вы можете использовать свойства TreeListControl.BestFitMode и TreeListColumn.BestFitMode, чтобы управлять областью обрабатываемых значений строк для операций Best Fit.
Доступные режимы расчёта Best Fit¶
-
Режим
BestFitMode.Fast— Измеряет ширину уникальных значений строк, что значительно повышает производительность Best Fit в большинстве сценариев.Note
-
Режим
Fastнеприменим, если отображаемый текст целевых ячеек зависит от других ячеек. В этом случае вам нужно переключиться на режимFull. -
Режим
Fastможет неправильно рассчитывать ширину колонок, если используются шаблоны ячеек (TreeListColumn.CellTemplate) для назначения пользовательских редакторов, либо если ячейки отображают ошибки проверки, вызванные источником данных (см.ShowItemsSourceErrors).
-
-
Режим
BestFitMode.Full— Измеряет ширину всех значений строк, включая дубликаты. Хотя этот режим медленнее, чемFast, он корректно рассчитывает ширину колонок, если используются шаблоны ячеек или ошибки проверки.
Автоматический (по умолчанию) режим расчёта Best Fit¶
Fast— режим по умолчанию в большинстве случаев.Fullавтоматически активируется в качестве режима по умолчанию в следующих сценариях:- Шаблоны ячеек (
TreeListColumn.CellTemplate) используются для назначения редакторов колонкам. - Свойство контрола
DataControlBase.ShowItemsSourceErrorsустановлено в значениеtrue, и ошибки проверки применяются к колонкам на уровне источника данных (с использованием атрибутов проверки, интерфейсаIDataErrorInfoили интерфейсаINotifyDataErrorInfo).
- Шаблоны ячеек (
Выбор режима расчёта Best Fit¶
Используйте следующие свойства, чтобы указать режим расчёта Best Fit для всех или отдельных колонок:
-
TreeListControl.BestFitMode— Определяет глобальный режим расчёта Best Fit для всех колонок TreeList. КогдаTreeListControl.BestFitModeустановлено в значениеnull(исходное значение), режим расчёта Best Fit определяется автоматически. Используйте свойствоTreeListColumn.BestFitMode, чтобы переопределить этот глобальный параметр для конкретных колонок. -
TreeListColumn.BestFitMode— Позволяет задать режим расчёта Best Fit для отдельных колонок, переопределяя свойствоTreeListControl.BestFitMode. Если свойствоTreeListColumn.BestFitModeимеет значениеnull(исходное значение), фактический параметр определяется свойством контролаTreeListControl.BestFitMode.
Вызов операций Best Fit в коде¶
Используйте следующие методы, чтобы изменить размер колонок TreeList до их оптимальной ширины:
TreeListControl.BestFit(TreeListColumn column)— Изменяет размер указанной колонки до ширины, необходимой для полного отображения её содержимого.TreeListControl.BestFitAllColumns()— Изменяет размер всех колонок до ширины, необходимой для полного отображения их содержимого.
Чтобы выполнить операции Best-Fit при инициализации контрола TreeList, вызовите метод BestFit или BestFitAllColumns в обработчике события TreeListControl.AttachedToVisualTree.
Сброс пользовательских изменений ширины колонки¶
После того как пользователь изменяет ширину колонок (перетаскиванием или с помощью Best Fit), в контекстных меню колонок появляется команда Reset Column Width. Эта команда отменяет изменения ширины колонок, внесённые пользователями, восстанавливая исходную ширину, применённую к колонкам в XAML или code-behind до пользовательских изменений.
Связанный API¶
TreeListControl.AllowResetColumnWidth(по умолчаниюtrue) — Определяет, доступна ли команда Reset Column Width в контекстных меню колонок. Если это свойство отключено, пользователи не могут отменить свои операции изменения размера колонок через интерфейс. СвойствоTreeListControl.AllowResetColumnWidthне влияет на сброс ширины колонки с помощью методаTreeListControl.ResetColumnWidth.- Метод
TreeListControl.ResetColumnWidth— Изменяет размер колонок до их исходной ширины, заданной в XAML или code-behind до каких-либо пользовательских изменений.
Заголовки колонок¶
Заголовки колонок TreeList отображаются на панели заголовков. Вы можете скрыть эту панель с помощью свойства TreeListControl.ShowColumnHeaders.
Высота панели автоматически подстраивается под содержимое заголовков колонок. Используйте свойство HeaderPanelMinHeight, чтобы ограничить минимальную высоту панели.
Заголовок колонки изначально отображает подпись (текстовую метку), которая является текстовым представлением свойства ColumnBase.Header. Если свойство ColumnBase.Header не задано, подпись колонки формируется из имени поля колонки (ColumnBase.FieldName).
Используйте свойство ColumnBase.HeaderTemplate, чтобы указать шаблон, используемый для отрисовки заголовка колонки. Шаблон позволяет отображать изображения и пользовательские контролы, а также отображать текст особым образом.
Следующий код отображает изображение перед подписью колонки. Выражение <TextBlock Text="{Binding}"> отображает содержимое свойства Header колонки:
xmlns:mxtl="https://schemas.eremexcontrols.net/avalonia/treelist"
<mxtl:TreeListControl Name="treeList" HeaderPanelMinHeight="50">
<mxtl:TreeListColumn FieldName="Number" Header="Position"
HeaderVerticalAlignment="Bottom">
<mxtl:TreeListColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="/info24x24.png" Width="24"
Height="24" Margin="0,0,5,0"/>
<TextBlock Text="{Binding}" VerticalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</mxtl:TreeListColumn.HeaderTemplate>
</mxtl:TreeListColumn>
</mxtl:TreeListControl>
Используйте свойства ColumnBase.HeaderHorizontalAlignment и ColumnBase.HeaderVerticalAlignment, чтобы выровнять содержимое заголовка колонки по горизонтали и вертикали.
Сортировка по колонке¶
Пользователь может щёлкнуть по заголовку колонки или воспользоваться контекстным меню заголовка колонки, чтобы отсортировать TreeList по этой колонке. Дополнительную информацию смотрите в разделе Сортировка данных.
Значения колонки¶
Чтобы узнать, как получать значения ячеек для конкретных узлов, смотрите раздел Узлы.
Всплывающие подсказки заголовков колонок¶
Используйте свойство HeaderToolTip, чтобы задать пользовательские всплывающие подсказки для заголовков колонок. Пользовательские подсказки отображаются при наведении на заголовки колонок независимо от того, обрезан ли текст заголовка колонки.
Если пользовательская подсказка не назначена колонке, отображается стандартная подсказка для заголовка колонки, если текст заголовка обрезан. Стандартная подсказка отображает полный, необрезанный текст заголовка.
Фиксированные колонки¶
Если общая ширина колонок превышает область просмотра контрола, появляется полоса прокрутки для выполнения горизонтальной прокрутки. TreeList позволяет фиксировать (закреплять) отдельные колонки у левого или правого края. Эти колонки остаются неподвижными при горизонтальной прокрутке, тогда как незакреплённые колонки прокручиваются как обычно.
Tip
Общая ширина колонок рассчитывается как сумма ширины отдельных колонок (см. TreeListColumn.Width). Чтобы активировать горизонтальную полосу прокрутки, задайте ширину отдельных колонок так, чтобы их сумма превышала ширину области просмотра. Не используйте нотацию звёздочки ("*") для ширины колонок при использовании фиксированных колонок.
Чтобы закрепить колонку или вернуть её в обычное состояние, установите свойство TreeListColumn.FixedMode в одно из следующих значений:
Left— Закрепляет колонку у левого края.Right— Закрепляет колонку у правого края.None— Открепляет закреплённую колонку.
<mxtl:TreeListColumn FieldName="FirstName" FixedMode="Left"/>
<mxtl:TreeListColumn FieldName="Phone" FixedMode="Right"/>
Меню Fixed¶
Пользователи могут закрепить колонку во время работы, используя встроенное подменю Fixed, доступное в контекстном меню колонки. Установите свойство контрола ShowColumnMenuFixedItem в значение true, чтобы включить это подменю Fixed:
Позиция фиксированной колонки¶
Когда колонка закрепляется (фиксируется) или возвращается в обычное состояние, её видимая позиция (синхронизированная со свойством TreeListColumn.VisibleIndex) обновляется автоматически.
- Закрепление слева: колонка помещается после существующих колонок, закреплённых слева.
- Закрепление справа: колонка помещается перед существующими колонками, закреплёнными справа.
- Открепление слева: колонка становится первой прокручиваемой колонкой.
- Открепление справа: колонка становится последней прокручиваемой колонкой.
Ширина фиксированной колонки¶
Чтобы изменить ширину фиксированной колонки, установите свойство TreeListColumn.Width в абсолютное значение в пикселях или в значение Auto для автоматического расчёта на основе содержимого ячеек. Фиксированные колонки не поддерживают нотацию звёздочки (пропорциональное задание размера) для установки ширины колонки.
Когда колонка с шириной star фиксируется, её ширина автоматически сбрасывается до 120 пикселей.
Режим отображения горизонтальной полосы прокрутки¶
По умолчанию горизонтальная полоса прокрутки отображается по всей ширине прокручиваемых колонок. Включите свойство ExtendScrollbarToFixedColumns, чтобы отображать горизонтальную полосу прокрутки по всей ширине всех колонок, включая фиксированные.
Связанный API¶
TreeListControl.FixedColumnSeparatorWidth— Определяет ширину разделителей, отделяющих фиксированные колонки от прокручиваемых.
Смотрите также¶
* Эта страница переведена с использованием технологий машинного перевода.











