# VisualElement

Inherits from:UIElements.Focusable

Implemented in:UnityEngine.UIElementsModule

  


Implements interfaces:IExperimentalFeatures, IResolvedStyle, ITransform, ITransitionAnimations, IVisualElementScheduler

### Description

Base class for objects that are part of the UIElements visual tree.

VisualElement contains several features that are common to all controls in UIElements, such as layout, styling and event handling. Several other classes derive from it to implement custom rendering and define behaviour for controls.

### Static Properties

disabledUssClassName| USS class name of local disabled elements.  
---|---  
  
### Properties

childCount|  Number of child elements in this object's contentContainer   
---|---  
contentContainer|  child elements are added to this element, usually this   
customStyle| Returns the custom style properties accessor for this element.  
enabledInHierarchy| Returns true if the VisualElement is enabled in its own hierarchy.  
enabledSelf| Returns true if the VisualElement is enabled locally.  
experimental| Returns the UIElements experimental interfaces.  
generateVisualContent| Called when the VisualElement visual contents need to be (re)generated.  
hierarchy|  Access to this element physical hierarchy   
pickingMode| Determines if this element can be pick during mouseEvents or IPanel.Pick queries.  
resolvedStyle| Returns the VisualElement resolved style values.  
schedule| Retrieves this VisualElement's IVisualElementScheduler  
style| Reference to the style object of this element.  
styleSheets| Returns a VisualElementStyleSheetSet that manipulates style sheets attached to this element.  
this[int]|  Access to this element physical hierarchy   
tooltip| Text to display inside an information box after the user hovers the element for a small amount of time.  
usageHints| A combination of hint values that specify high-level intended usage patterns for the VisualElement. This property can only be set when the VisualElement is not yet part of a Panel. Once part of a Panel, this property becomes effectively read-only, and attempts to change it will throw an exception. The specification of proper UsageHints drives the system to make better decisions on how to process or accelerate certain operations based on the anticipated usage pattern. Note that those hints do not affect behavioral or visual results, but only affect the overall performance of the panel and the elements within. Generally it advised to always consider specifying the proper UsageHints, but keep in mind that some UsageHints may be internally ignored under certain conditions (e.g. due to hardware limitations on the target platform).  
userData| This property can be used to associate application-specific user data with this VisualElement.  
viewDataKey| Used for view data persistence (ie. tree expanded states, scroll position, zoom level).  
  
### Public Methods

Add| Add an element to this element's contentContainer  
---|---  
BringToFront| Brings this element to the end of its parent children list. The element will be visually in front of any overlapping sibling elements.  
Children| Returns the elements from its contentContainer  
Clear| Remove all child elements from this element's contentContainer  
Contains| Returns true if the element is a direct child of this VisualElement  
ElementAt| Retrieves the child element at position  
EnableInClassList| Enables or disables the class with the given name.  
FindAncestorUserData| Searchs up the hierachy of this VisualElement and retrieves stored userData, if any is found.  
FindCommonAncestor| Finds the lowest commont ancestor between two VisualElements inside the VisualTree hierarchy  
GetClasses| Retrieve the classes for this element.  
GetFirstAncestorOfType| Walks up the hierarchy, starting from this element's parent, and returns the first VisualElement of this type  
GetFirstOfType| Walks up the hierarchy, starting from this element, and returns the first VisualElement of this type  
IndexOf| Retrieves the child index of the specified VisualElement.  
Insert| Insert an element into this element's contentContainer  
MarkDirtyRepaint| Triggers a repaint of the VisualElement on the next frame.  
PlaceBehind| Places this element right before the sibling element in their parent children list. If the element and the sibling position overlap, the element will be visually behind of its sibling.  
PlaceInFront| Places this element right after the sibling element in their parent children list. If the element and the sibling position overlap, the element will be visually in front of its sibling.  
Remove| Removes this child from the hierarchy  
RemoveAt| Remove the child element located at this position from this element's contentContainer  
RemoveFromHierarchy| Removes this element from its parent hierarchy  
SendEvent| Sends an event to the event handler.  
SendToBack| Sends this element to the beginning of its parent children list. The element will be visually behind any overlapping sibling elements.  
SetEnabled| Changes the VisualElement enabled state. A disabled VisualElement does not receive most events.  
Sort| Reorders child elements from this VisualElement contentContainer.  
ToggleInClassList| Toggles between adding and removing the given class name from the class list.  
  
### Inherited Members

### Properties

canGrabFocus| Return true if the element can be focused.  
---|---  
delegatesFocus| Whether the element should delegate the focus to its children.  
focusable| True if the element can be focused.  
focusController| Return the focus controller for this element.  
tabIndex| An integer used to sort focusables in the focus ring. Must be greater than or equal to zero.  
  
### Public Methods

HandleEvent| Handle an event, most often by executing the callbacks associated with the event.  
---|---  
HasBubbleUpHandlers| Return true if event handlers for the event propagation BubbleUp phase have been attached on this object.  
HasTrickleDownHandlers| Returns true if event handlers, for the event propagation TrickleDown phase, are attached to this object.  
RegisterCallback| Adds an event handler to the instance. If the event handler has already been registered for the same phase (either TrickleDown or BubbleUp) then this method has no effect.  
UnregisterCallback| Remove callback from the instance.  
Blur| Tell the element to release the focus.  
Focus| Attempt to give the focus to this element.