logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Interface ICompositeViewDefinition

    Defines a composite view: a container that arranges an ordered set of child views (Children) according to a flexbox-style Layout. Because a child can itself be a composite (via ViewDefinition), whole screens — such as a settings screen with a nav rail beside a scrollable content column — are expressed as a tree of these definitions. There are no built-in regions: any bar or panel (e.g. a footer of actions) is just another nested composite.

    Inherited Members
    IScrollableViewDefinition.Scrollable
    IScrollableViewDefinition.ScrollAxis
    Namespace: Serenity.Ui.Domain.Interfaces
    Assembly: Serenity.Ui.Domain.dll
    Syntax
    public interface ICompositeViewDefinition : IViewDefinition, IFoundationSettings, IScrollableViewDefinition
    Remarks

    The container's ContentMode decides whether all children show together (STACK) or only one shows at a time (SWITCHER). A switcher is how a "predominant" navigation view drives a "non-predominant" content area: selecting a nav entry activates the matching child here, while the nav itself lives in a sibling stack region and stays visible.

    Properties

    Children

    The ordered children placed inside this view's layout container.

    Declaration
    IReadOnlyList<ICompositeViewChild> Children { get; }
    Property Value
    Type Description
    IReadOnlyList<ICompositeViewChild>

    ContentMode

    Whether children stack together or only the active one is shown.

    Declaration
    ContainerContentMode ContentMode { get; }
    Property Value
    Type Description
    ContainerContentMode

    CrossMenuNavigation

    For a STACK of menus, whether up/down navigation moves focus between the stacked menus at their first/last option (instead of wrapping within a single menu).

    Declaration
    bool CrossMenuNavigation { get; }
    Property Value
    Type Description
    bool

    CrossMenuWrapAround

    When CrossMenuNavigation is on, whether moving past the very first menu's first option (or the last menu's last option) wraps around the whole stack, versus stopping at the ends.

    Declaration
    bool CrossMenuWrapAround { get; }
    Property Value
    Type Description
    bool

    FocusInitialView

    Whether input control starts on the default content child (so the player drives the content immediately) versus staying on the sibling navigation rail. Only meaningful when IsAlwaysShowingContent is true.

    Declaration
    bool FocusInitialView { get; }
    Property Value
    Type Description
    bool

    InitialActiveChildId

    For a SWITCHER container, the id of the child shown first. When empty, the first child is used. Ignored for STACK.

    Declaration
    string InitialActiveChildId { get; }
    Property Value
    Type Description
    string

    IsAlwaysShowingContent

    For a SWITCHER container, whether to show the default child (InitialActiveChildId) on first show, versus starting blank (no child shown until a navigation rail activates one).

    Declaration
    bool IsAlwaysShowingContent { get; }
    Property Value
    Type Description
    bool

    Layout

    The layout that arranges this view's children.

    Declaration
    LayoutConfig Layout { get; }
    Property Value
    Type Description
    LayoutConfig

    See Also

    IViewDefinition
    In this article
    © 2026 Serenity. All Rights Reserved