Link Search Menu Expand Document


Based on UIImageView


Expandable view with a header and content. When header is clicked the view expands to show content or collapses to hide it.


Simple expander:

<Expander Text="Expand Me" Width="300" Alignment="TopLeft">
  <Region Size="300,200" BackgroundColor="Blue">
    <Label Text="Expanded Content" AutoSize="True" />

Expander with custom header:

<Expander Width="300" Alignment="TopLeft">
  <ExpanderHeader Size="300,20">
    <Image Sprite="CheckBox" Expanded-Sprite="CheckBoxPressed" 
           ExpanderHeader.SetExpanderState="True" Alignment="Left" />
    <Label Text="Expand Me" Alignment="Left" AutoSize="True" 
           Margin="30,0,0,0" />
  <ExpanderContent Size="300,200" BackgroundColor="Blue">
    <Label Text="Expanded Content" AutoSize="True" />

Dependency Properties

Name Type Description
Alignment ElementAlignment Used to align the view relative to the layout parent region it resides in.
Alpha float Can be used to adjust the alpha color of this view and all its children. E.g. used for fade in/out animations. Is separate from and different from the background color of the view as it affects the children as well.
BackgroundAlphaHitTestMinimumThreshold float Alpha values less than the threshold will cause raycast events to pass through the view.
BackgroundColor Color Background color of the view. Color values can be specified by name (Red, Blue, Coral, etc), hexcode (#aarrggbb or #rrggbb) or rgb/rgba value (“1.0,0.0,0.5” or “1,1,1,0.5”).
BackgroundFillAmount float Amount of the view shown when BackgroundType is set to Filled.
BackgroundFillCenter bool Boolean indicating if the center of a Tiled or Sliced sprite should be rendered.
BackgroundFillClockwise bool Boolean indicating if the sprite should be filled clockwise or counter-clockwise.
BackgroundFillMethod FillMethod Enum indicating the background fill method.
BackgroundFillOrigin int Point of origin of the Fill process. Value means different things with each fill method.
BackgroundIsMaskingGraphic bool Boolean indicating if image is a masking graphic.
BackgroundMaskable bool Boolean indicating if the graphic allows masking.
BackgroundMaterial Material Material used by the sprite.
BackgroundOnCullStateChanged CullStateChangedEvent Callback called when the culling state of this graphic either becomes culled or visible.
BackgroundOverrideSprite Sprite Overrides the default sprite used by this view.
BackgroundPixelsPerUnitMultiplier float Pixel per unit modifier to change how sliced sprites are generated.
BackgroundPreserveAspect bool Boolean indicating if this sprite should preserve its aspect ratio.
BackgroundRaycastTarget bool Boolean indicating if the graphic should be considered a target for raycasting.
BackgroundSprite Sprite The background sprite of the view. The value is the name of the sprite asset file without extension, e.g. “mysprite”.
BackgroundType Type Enum indicating what type of sprite the background is.
BackgroundUseSpriteMesh bool Boolean indicating if the view should use mesh generated by TextureImporter or a simple quad mesh.
BubbleNotifyChildLayoutChanged bool Boolean indicating if parent always should be notified when the child changes layout.
ContentMargin ElementMargin Margin of the expanded content.
DisableLayoutUpdate bool Boolean indicating if automatic layout updates for this view should be disabled. When disabled the view doesn’t call UpdateLayout() when properties such as Width, Height, etc. changes.
EnableScriptEvents bool Boolean indicating if unity script events (Update, LateUpdate, Awake, etc) should be relayed to the view code-behind through the corresponding methods that can be overriden.
GameObject GameObject GameObject in the hierarchy that corresponds to the view.
HeaderAlignment ElementAlignment Alignment of the expander header.
HeaderHeight ElementSize Height of the expander header.
Height ElementSize The height of the view in pixels or percents.
IgnoreFlip bool Used when doing localization override default behavior of flipping the view Right to Left or Left to Rigth.
IgnoreObject bool Boolean indicating if the view should be ignored. Ignored objects don’t run any load logic and don’t respond to property changed events.
IsActive bool Boolean indicating if the view is active. Deactivated views deactivates corresponding game object, components, renderers and scripts.
IsDisabled bool Boolean indicating if the expander button is deisabled.
IsExpanded bool Boolean indicating if content is expanded.
IsInteractable bool Boolean indicating if expander responds to user interaction.
IsVisible bool Boolean indicating if view is visible or hidden. Invisible views still take up space but aren’t interactable and have their alpha set to 0.
LoadMode LoadMode Enum flags indicating when and how the view should be loaded by the framework. Can be changed when e.g. the view is to be loaded on-demand.
Margin ElementMargin Adding margins to a view changes the size of the area in which its content resides, but it does not change the width or height of the view.
MaskContent bool Boolean indicating if content of the view should be masked.
Offset ElementMargin Determines the offset of the view.
OffsetFromParent ElementMargin Offset set by a parent view. Used by views like Group to arrange children without changing their own Offset values.
OverrideHeight ElementSize Overrides regular Height value. Used to e.g. automatically size items without changing the default Height value set.
OverrideWidth ElementSize Overrides regular Width value. Used to e.g. automatically size items without changing the default Width value set.
Pivot Vector2 The pivot point of the view.
Position Vector3 Directly sets the local position of the view relative to parent. Position otherwise set using the Alignment and Offset properties.
RaycastBlockMode RaycastBlockMode Enum indicating if raycasts should be blocked.
Rotation Quaternion Rotation of the view.
Scale Vector3 Scale of the view.
Text string Expander header text.
ToggleMode SwitchMode Enum indicating how the content should be toggled, e.g. if content should be loaded on-demand or be pre-loaded.
UseFastShader bool Boolean indicating if the default UI shader should be replaced by a simpler and faster one. The faster shader does not support masking and clipping.
Width ElementSize The width of the view in pixels or percents.