版本:Unity 6 (6000.0)
语言英语
  • C#

TreeView

UnityEngine.UIElements 中的类

/

继承自:UIElements.BaseTreeView

/

实现于:UnityEngine.UIElementsModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有提交,但我们会阅读用户提出的每个建议更改,并在适当的地方进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

TreeView 是一个垂直可滚动区域,它链接到并显示以树形结构组织的项目列表。

TreeView 是一个 ScrollView,它具有额外的逻辑来显示垂直排列的 VisualElement 树。树中的每个 VisualElement 都绑定到数据源列表中的对应元素。数据源列表可以包含任何类型的元素。

创建 VisualElement 以及将其绑定到或取消绑定到数据源所需的逻辑因预期结果而异。您需要实现适合您的用例的逻辑。为了使 ListView 正确运行,您必须至少提供以下内容

- BaseVerticalCollectionView.fixedItemHeight

对于更复杂的项目,还建议提供以下内容

TreeView 为可见项目创建 VisualElement,并支持绑定更多项目。当用户滚动时,TreeView 会回收 VisualElement 并将其重新绑定到新的数据项。

有关更多信息,请参阅 UXML 元素 TreeView

属性

bindItem将数据项绑定到视觉元素的回调。
destroyItem当通过 makeItem 创建的 VisualElement 不再需要并且将被销毁时调用的回调。
itemTemplate一个 UXML 模板,用于构建树中每个回收和重新绑定的元素。此模板旨在替换 makeItem 定义。
makeItem用于构建 VisualElement 的回调,该 VisualElement 是列表中每个回收和重新绑定的元素的模板。
unbindItem用于将数据项从 VisualElement 解绑的回调。
viewController此视图的视图控制器,被强制转换为 TreeViewController。

构造函数

TreeView创建一个具有所有默认属性的 TreeView。

继承的成员

静态属性

itemContentContainerUssClassNameTreeView 项目容器元素的 USS 类名称。
itemIndentUssClassNameTreeView 缩进元素的 USS 类名称。
itemToggleUssClassNameTreeView 项目切换元素的 USS 类名称。
itemUssClassNameTreeView 项目元素的 USS 类名称。
ussClassNameTreeView 元素的 USS 类名称。
borderUssClassName带有边框的 BaseVerticalCollectionView 元素的 USS 类名称。
dragHoverBarUssClassName拖动悬停栏的 USS 类名称。
dragHoverMarkerUssClassName用于指示深度的拖动悬停圆形标记的 USS 类名称。
itemAlternativeBackgroundUssClassNameBaseVerticalCollectionView 中奇数行的 USS 类名称。
itemDragHoverUssClassName拖动悬停时应用于项目元素的 USS 类名称。
itemSelectedVariantUssClassNameBaseVerticalCollectionView 中选中项目元素的 USS 类名称。
listScrollViewUssClassNameBaseVerticalCollectionView 中滚动视图的 USS 类名称。
disabledUssClassName本地禁用元素的 USS 类名称。

属性

autoExpand设置为 true 时,项目在添加到 TreeView 时会自动展开。
itemsSource对 itemsSource 的访问。对于 TreeView,源包含项目包装器。
viewController此视图的视图控制器,被强制转换为 BaseTreeViewController。
contentContainer返回 BaseVerticalCollectionView 的内容容器。因为 BaseVerticalCollectionView 控件会自动管理其内容,所以它始终返回 null。
fixedItemHeight列表中单个项目的像素高度。
horizontalScrollingEnabled此属性控制集合视图在内容不适合可见区域时是否显示水平滚动条。
reorderable获取或设置一个值,该值指示用户是否可以拖动列表项以重新排序它们。
selectedIds返回数据源中选定项目的持久 ID,无论它们是否已折叠。始终返回一个可枚举对象,即使没有选择任何项目或只选择了一个项目。
selectedIndex返回或设置数据源中选中项目的索引。如果选择了多个项目,则返回第一个选中项目的索引。如果提供了多个项目,则将它们全部设置为选中状态。
selectedIndices返回数据源中选中项目的索引。始终返回一个可枚举对象,即使没有选择任何项目或只选择了一个项目。
selectedItem返回数据源中选中的项目。如果选择了多个项目,则返回第一个选中项目。
selectedItems返回数据源中选中的项目。始终返回一个可枚举对象,即使没有选择任何项目或只选择了一个项目。
selectionType控制选择类型。
showAlternatingRowBackgrounds此属性控制集合视图行的背景颜色是否交替。从 AlternatingRowBackground 枚举中获取一个值。
showBorder启用此属性以在集合视图周围显示边框。
virtualizationMethod当滚动条可见时,用于此集合的虚拟化方法。从 CollectionVirtualizationMethod 枚举中获取一个值。
binding将要更新的绑定对象。
bindingPath要绑定的目标属性的路径。
canGrabFocus如果元素可以获得焦点,则返回 true。
delegatesFocus元素是否应将其焦点委托给其子级。
focusable如果元素可以获得焦点,则为 true。
focusController返回此元素的焦点控制器。
tabIndex一个整数,用于在焦点环中对可获得焦点的元素进行排序。必须大于或等于零。
childCount此对象 contentContainer 中子元素的数量。
contentRect元素内容区域的矩形,以元素的本地空间表示。(只读)
customStyleVisualElement 的自定义样式属性访问器。(只读)
dataSource将数据源分配给此 VisualElement,它会覆盖任何继承的数据源。此数据源会被所有子级继承。
dataSourcePath从数据源到值的路径。
dataSourceType可以分配给此 VisualElement 的数据源的可能类型。此信息仅由 UI 生成器使用,作为提示在设计时无法指定有效数据源时为数据源路径字段提供一些完成。
disablePlayModeTint默认情况下会应用播放模式色调,除非将其设置为 true。它会分层应用于此 VisualElement 及其在编辑器面板上存在的所有子级。
enabledInHierarchy如果 VisualElement 在其自己的层次结构中已启用,则返回 true。
enabledSelf如果 VisualElement 在本地已启用,则返回 true。
experimental返回 UIElements 实验性接口。
generateVisualContent用于生成视觉元素的视觉内容的委托函数。
hierarchy访问此元素的物理层次结构
languageDirection指示元素文本的方向性。该值会传播到元素的子级。
layout相对于其父级,VisualElement 的位置和大小,由布局系统计算。(只读)
localBound返回一个 Rect,表示在应用变换后但在应用布局平移之前应用 Axis-aligned Bounding Box (AABB)。
name此 VisualElement 的名称。
paddingRect元素的填充区域的矩形,以元素的本地空间表示。
panel此 VisualElement 附加到的面板。
parent此 VisualElement 的父级。
pickingMode确定此元素是否可以在 mouseEvents 或 IPanel.Pick 查询期间进行选择。
resolvedStyle视觉元素的最终渲染样式值,如当前帧中渲染的。(只读)
scaledPixelsPerPoint返回来自面板的缩放结果,该缩放结果考虑了屏幕 DPI 和可自定义的缩放因子,但不考虑元素及其祖级的变换缩放。请参见 Panel.scaledPixelsPerPoint。这只能在属于面板的元素上调用。
schedule检索此 VisualElement 的 IVisualElementScheduler
style在 VisualElement 上设置样式值。
styleSheets返回一个 VisualElementStyleSheetSet,它用于操作附加到此元素的样式表。
this[int]检索特定索引处的子元素。
tooltip在用户将鼠标悬停在元素上一段时间后,要在信息框内显示的文本。这仅在编辑器 UI 中受支持。
transform返回此 VisualElement 的变换对象。ITransform
usageHints一组提示值,指定 VisualElement 的高级预期用法模式。此属性只能在 VisualElement 尚未成为面板的一部分时设置。一旦成为面板的一部分,此属性将实际上变为只读,尝试更改它将引发异常。正确 UsageHints 的指定会驱动系统根据预期的用法模式来更好地决定如何处理或加速某些操作。请注意,这些提示不会影响行为或视觉结果,只会影响面板及其内部元素的整体性能。建议始终考虑指定正确的 UsageHints,但请记住,某些 UsageHints 可能在某些情况下在内部被忽略(例如,由于目标平台上的硬件限制)。
userData此属性可用于将应用程序特定的用户数据与此 VisualElement 关联。
viewDataKey用于视图数据持久性,例如树展开状态、滚动位置或缩放级别。
visible指示此元素是否应进行渲染。
visualTreeAssetSource存储资产引用(如果生成的元素是从 VisualTreeAsset 克隆的)。
worldBound返回一个 Rect,表示在应用世界变换后应用 Axis-aligned Bounding Box (AABB)。
worldTransform返回一个矩阵,该矩阵累积了以下操作(按顺序):-本地缩放-本地旋转-本地平移-布局平移-父世界变换(递归定义 - 如果没有父级,则考虑单位矩阵)

公共方法

AddItem将项目添加到现有树中。
AddToSelectionById通过 ID 将项目添加到当前选择中。
CollapseAll折叠所有 TreeView 项目,包括子级。
CollapseItem折叠指定的 TreeView 项目。
ExpandAll展开所有 TreeView 项目,包括子级。
ExpandItem展开指定的 TreeView 项目。
ExpandRootItems展开所有根 TreeView 项目。
GetChildrenIdsForIndex获取指定 TreeView 项目的子级标识符。
GetIdForIndex获取指定 TreeView 项目的标识符。
GetItemDataForId获取指定 TreeView 项目 ID 的数据。
GetItemDataForIndex获取指定 TreeView 项目索引的数据。
GetParentIdForIndex获取指定 TreeView 项目的父级标识符。
GetRootIds获取根项目标识符。
GetSelectedItems获取所选项目索引的树数据。
GetTreeCount获取 TreeView 的总项目数。
IsExpanded如果指定的 TreeView 项目已展开,则返回 true,否则返回 false。
RemoveFromSelectionById根据 ID 从当前选择中删除项目。
SetRootItems设置要与默认树视图控制器一起使用的根项目。
SetSelectionById根据 ID 设置当前选定的项目。
SetSelectionByIdWithoutNotify根据 ID 设置一组选定的项目,但不触发选择更改回调。
SetViewController为该视图分配视图控制器,并注册所有使其正常运行所需的事件。
TryRemoveItem如果可以找到树中的项目,则将其删除。
AddToSelection将项目添加到选定项目集合中。
ClearSelection取消选择所有选定的项目。
GetRootElementForId获取指定集合视图项目的根元素。
GetRootElementForIndex获取指定集合视图项目的根元素。
Rebuild清除集合视图,重新创建所有可见的视觉元素,并重新绑定所有项目。
RefreshItem如果项目当前在集合视图中可见,则重新绑定单个项目。
RefreshItems重新绑定所有当前可见的项目。
RemoveFromSelection从选定项目集合中删除项目。
ScrollTo滚动到特定的 VisualElement。
ScrollToItem滚动到特定的项目索引,并使其可见。
ScrollToItemById滚动到特定的项目 ID,并使其可见。
SetSelection设置当前选定的项目。
SetSelectionWithoutNotify设置一组选定的项目,但不触发选择更改回调。
HasBubbleUpHandlers如果已将事件处理程序附加到此对象的事件传播 BubbleUp 阶段,则返回 true。
HasTrickleDownHandlers如果将事件处理程序附加到此对象的事件传播 TrickleDown 阶段,则返回 true。
RegisterCallback向实例添加事件处理程序。如果已为同一阶段(TrickleDown 或 BubbleUp)注册了事件处理程序,则此方法无效。
RegisterCallbackOnce向实例添加事件处理程序。如果已为同一阶段(TrickleDown 或 BubbleUp)注册了事件处理程序,则此方法无效。事件处理程序在恰好调用一次后会自动取消注册。
UnregisterCallback从实例中删除回调。
Blur指示元素释放焦点。
Focus尝试将焦点赋予此元素。
Add将元素添加到此元素的 contentContainer 中。
AddToClassList向元素的类列表中添加一个类,以便从 USS 分配样式。请注意,类名区分大小写。
BringToFront将此元素移到其父级子级列表的末尾。该元素将在视觉上位于任何重叠的兄弟元素的前面。
Children返回其 contentContainer 中的元素。
ClassListContains在此元素的类列表中搜索类。
Clear从此元素的 contentContainer 中删除所有子元素。
ClearBinding从元素中删除绑定。
ClearBindings从元素中删除所有绑定。
ClearClassList从此元素的类列表中删除所有类。AddToClassList
Contains检查此元素是否为指定子元素的祖先。
ContainsPoint检查指定点是否与该 VisualElement 的布局相交。
ElementAt检索特定索引处的子元素。
EnableInClassList启用或禁用具有给定名称的类。
FindAncestorUserData向上搜索该 VisualElement 的层次结构,并检索存储的 userData(如果有)。
FindCommonAncestor在 VisualTree 层次结构中,查找两个 VisualElement 之间的最低公共祖先。
GetBinding获取为提供的目标属性提供的绑定实例。
GetBindingInfos获取有关当前元素所有绑定的信息。
GetClasses检索此元素的类。
GetDataSourceContext查询绑定对象的 dataSource 和 dataSourcePath。
GetFirstAncestorOfType向上遍历层次结构(从该元素的父级开始),并返回此类型的第一个 VisualElement。
GetFirstOfType向上遍历层次结构(从该元素开始),并返回此类型的第一个 VisualElement。
GetHierarchicalDataSourceContext查询从层次结构继承的 dataSource 和 dataSourcePath。
HasBinding允许知道目标属性是否具有与之关联的绑定。
IndexOf检索指定 VisualElement 的子级索引。
Insert将元素插入此元素的 contentContainer 中。
MarkDirtyRepaint在下一帧触发 VisualElement 的重新绘制。当发生需要重新绘制的更改时,例如当 UIElements.BaseField_1.value 更改或 Label 中的文本更改时,该方法会在内部调用。如果您正在实现自定义控件,则可以在发生需要重新绘制的更改时(例如在使用 generateVisualContent 呈现网格且网格数据现在已更改时)调用此方法以触发重新绘制。
PlaceBehind将此元素放在兄弟元素之前,在它们的父级子级列表中。如果该元素和兄弟元素的位置重叠,则该元素在视觉上将位于其兄弟元素的后面。
PlaceInFront将此元素放在兄弟元素之后,在它们的父级子级列表中。如果该元素和兄弟元素的位置重叠,则该元素在视觉上将位于其兄弟元素的前面。
Remove从此元素的 contentContainer 层次结构中删除此子元素。
RemoveAt从此元素的 contentContainer 中删除位于此位置的子元素。
RemoveFromClassList从元素的类列表中删除类。
RemoveFromHierarchy从此元素的父级层次结构中删除该元素。
SendEvent向事件处理程序发送事件。
SendToBack将此元素发送到其父级子级列表的开头。该元素将在视觉上位于任何重叠的兄弟元素的后面。
SetBinding在目标和源之间分配绑定。
SetEnabled更改 VisualElement 的启用状态。禁用的 VisualElement 不会接收大多数事件。
Sort重新排列来自该 VisualElement contentContainer 的子元素。
ToggleInClassList在将给定类名添加到类列表和从类列表中删除给定类名之间切换。
TryGetBinding获取为提供的目标属性提供的绑定实例。
TryGetDataSourceContext查询绑定对象的 dataSource 和 dataSourcePath。
TryGetLastBindingToSourceResult返回从 UI 到数据源的绑定对象的最后一个 BindingResult。
TryGetLastBindingToUIResult返回从数据源到 UI 的绑定对象的最后一个 BindingResult。

Protected Methods

CreateViewController为该视图创建视图控制器。在继承者中覆盖此方法以更改控制器类型。
HandleEventBubbleUp在 BubbleUp 阶段的此元素上执行逻辑,紧接在该元素的 BubbleUp 回调之前。调用 StopPropagation 将阻止沿传播路径进一步调用此方法。
HandleEventTrickleDown在 TrickleDown 阶段的此元素上执行逻辑,紧接在该元素的 TrickleDown 回调之后。调用 StopPropagation 将阻止沿传播路径进一步调用此方法。
NotifyPropertyChanged通知数据绑定系统控件的某个属性已更改。

Events

itemExpandedChanged当项目展开或折叠时引发。
canStartDrag当拖放操作想要在此集合视图中开始时调用。
dragAndDropUpdate当拖放操作在此集合视图中更新时调用。
handleDrop当拖放操作在此集合视图中释放时调用。
itemIndexChanged当项目在 itemsSource 中移动时调用。
itemsChosen当用户对一个或多个项目的选定内容采取操作时触发的回调,例如双击或按 Enter 键。
itemsSourceChanged当垂直集合视图的数据源被分配新的引用或新的类型时引发。
onItemsChosen已弃用。请使用 BaseVerticalCollectionView.itemsChosen 代替。
onSelectedIndicesChange已弃用。请使用 BaseVerticalCollectionView.selectedIndicesChanged 代替。
onSelectionChange已弃用。请使用 BaseVerticalCollectionView.selectionChanged 代替。
selectedIndicesChanged当选择更改时触发的回调。
selectionChanged当选择更改时触发的回调。
setupDragAndDrop当拖放操作在此集合视图中开始时调用。