API: Layout Controls

API Reference for containers and layout management.

TWvdSLayoutControl

Automatic form layout.

Namespace

WvdS.UI.Controls.Layout

PXAML

<LayoutControl>
  <LayoutGroup Header="Personal Data">
    <LayoutItem Label="Name:">
      <TextEdit Text="{Binding Name}" />
    </LayoutItem>
    <LayoutItem Label="Email:">
      <TextEdit Text="{Binding Email}" />
    </LayoutItem>
  </LayoutGroup>
  <LayoutGroup Header="Address" IsCollapsible="True">
    <LayoutItem Label="Street:">
      <TextEdit Text="{Binding Street}" />
    </LayoutItem>
    <LayoutItem Label="City:">
      <TextEdit Text="{Binding City}" />
    </LayoutItem>
  </LayoutGroup>
</LayoutControl>

Properties

Property Type Default Description
Items TLayoutItemCollection nil Layout elements
LabelPosition TLabelPosition lpLeft Left, Top
LabelWidth Integer 100 Label width
ItemSpacing Integer 5 Spacing between items
GroupSpacing Integer 10 Spacing between groups

TWvdSLayoutGroup

Property Type Description
Header string Group header
IsCollapsible Boolean Collapsible
IsCollapsed Boolean Collapsed
Items TLayoutItemCollection Child elements

TWvdSLayoutItem

Property Type Description
Label string Label
Control TWvdSFrameworkElement Contained control
ColSpan Integer Column span
RowSpan Integer Row span

TWvdSDockingManager

Docking system for flexible window arrangement.

Namespace

WvdS.UI.Controls.Layout

PXAML

<DockingManager>
  <DockPanel Name="Explorer" Position="Left" Width="200">
    <FileExplorer />
  </DockPanel>
  <DockPanel Name="Properties" Position="Right" Width="250">
    <PropertyGrid />
  </DockPanel>
  <DockPanel Name="Output" Position="Bottom" Height="150">
    <OutputLog />
  </DockPanel>
  <DocumentHost>
    <Document Title="MainWindow.pxaml">
      <CodeEditor />
    </Document>
  </DocumentHost>
</DockingManager>

Properties

Property Type Default Description
Panels TDockPanelCollection nil Dock panels
DocumentHost TDocumentHost nil Document area
Theme TDockingTheme dtDefault Theme
AllowFloating Boolean True Floating allowed
AllowAutoHide Boolean True Auto-hide allowed

Events

Event Signature Description
OnPanelDocked TPanelEvent Panel docked
OnPanelFloating TPanelEvent Panel floating
OnPanelClosing TPanelClosingEvent Panel closing

TWvdSSplitContainer

Split container.

Namespace

WvdS.UI.Controls.Layout

PXAML

<SplitContainer Orientation="Horizontal"
                SplitterPosition="0.3">
  <SplitContainer.Panel1>
    <TreeView ItemsSource="{Binding Folders}" />
  </SplitContainer.Panel1>
  <SplitContainer.Panel2>
    <ListView ItemsSource="{Binding Files}" />
  </SplitContainer.Panel2>
</SplitContainer>

Properties

Property Type Default Description
Orientation TWvdSOrientation oHorizontal Split direction
SplitterPosition Double 0.5 Position (0-1)
SplitterWidth Integer 5 Splitter width
Panel1 TWvdSFrameworkElement nil Left/top panel
Panel2 TWvdSFrameworkElement nil Right/bottom panel
Panel1MinSize Integer 50 Minimum Panel1
Panel2MinSize Integer 50 Minimum Panel2
IsSplitterFixed Boolean False Splitter fixed

TWvdSGroupControl

Group container with border.

Namespace

WvdS.UI.Controls.Layout

PXAML

<GroupControl Header="Options">
  <StackPanel>
    <CheckBox Content="Option 1" />
    <CheckBox Content="Option 2" />
  </StackPanel>
</GroupControl>

Properties

Property Type Default Description
Header string | Header | ^ Content | TWvdSFrameworkElement | nil | Content | ^ BorderStyle | TBorderStyle | bsSingle | None, Single, Double | —- ===== TWvdSXtraScrollBox ===== Scroll container. ==== Namespace ==== WvdS.UI.Controls.Layout ==== PXAML ==== <code xml> <XtraScrollBox HorizontalScrollBarVisibility=„Auto“ VerticalScrollBarVisibility=„Always“> <StackPanel> <!– Many controls –> </StackPanel> </XtraScrollBox> </code> ==== Properties ==== | Property | Type | Default | Description | ^ Content | TWvdSFrameworkElement | nil | Content | ^ HorizontalScrollBarVisibility | TScrollBarVisibility | svAuto | Hidden, Auto, Visible | ^ VerticalScrollBarVisibility | TScrollBarVisibility | svAuto | Hidden, Auto, Visible | ^ HorizontalOffset | Double | 0 | H-scroll position | ^ VerticalOffset | Double | 0 | V-scroll position | —- ===== TWvdSFlowLayoutPanel ===== Flow layout. ==== Namespace ==== WvdS.UI.Controls.Layout ==== PXAML ==== <code xml> <FlowLayoutPanel FlowDirection=„LeftToRight“ WrapContents=„True“ ItemSpacing=„10“> <Button Caption=„Button 1“ /> <Button Caption=„Button 2“ /> <Button Caption=„Button 3“ /> </FlowLayoutPanel> </code> ==== Properties ==== | Property | Type | Default | Description | ^ FlowDirection | TFlowDirection | fdLeftToRight | LeftToRight, TopDown, RightToLeft, BottomUp | ^ WrapContents | Boolean | True | Wrap | ^ ItemSpacing | Integer | 5 | Spacing | —- ===== TWvdSTableLayoutPanel ===== Table-based layout. ==== Namespace ==== WvdS.UI.Controls.Layout ==== PXAML ==== <code xml> <TableLayoutPanel Columns=„Auto,*,100“ Rows=„Auto,*“> <Label Text=„Name:“ Row=„0“ Column=„0“ /> <TextEdit Row=„0“ Column=„1“ ColumnSpan=„2“ /> <Label Text=„Notes:“ Row=„1“ Column=„0“ /> <MemoEdit Row=„1“ Column=„1“ ColumnSpan=„2“ /> </TableLayoutPanel> </code> ==== Properties ==== | Property | Type | Default | Description | ^ Columns | string | Column definition
Rows string | Row definition | ^ CellSpacing | Integer | 0 | Cell spacing | ==== Column/Row Syntax ==== | Value | Meaning | ^ Auto | Automatic size | ^ * | Fill available space | ^ 100 | Fixed size (pixels) | ^ 2* | Double proportion | —- ===== TWvdSPopupContainer ===== Popup container for custom popups. ==== Namespace ==== WvdS.UI.Controls.Layout ==== PXAML ==== <code xml> <PopupContainer IsOpen=„{Binding ShowPopup}“ PlacementTarget=„{Binding ElementName=targetButton}“ Placement=„Bottom“> <Border Background=„White“ Padding=„10“> <StackPanel> <Label Text=„Popup Content“ /> <Button Caption=„Close“ Command=„{Binding ClosePopup}“ /> </StackPanel> </Border> </PopupContainer> </code> ==== Properties ==== | Property | Type | Default | Description | ^ IsOpen | Boolean | False | Popup visible | ^ Content | TWvdSFrameworkElement | nil | Content | ^ PlacementTarget | TWvdSFrameworkElement | nil | Target element | ^ Placement | TPopupPlacement | ppBottom | Bottom, Top, Left, Right, Center | ^ HorizontalOffset | Double | 0 | H-offset | ^ VerticalOffset | Double | 0 | V-offset | —- ===== TWvdSCardControl ===== Card-based container. ==== Namespace ==== WvdS.UI.Controls.Layout ==== PXAML ==== <code xml> <CardControl> <Card Header=„Card 1“> <Content1 /> </Card> <Card Header=„Card 2“> <Content2 /> </Card> </CardControl> </code> ==== Properties ==== | Property | Type | Default | Description | ^ Cards | TCardCollection | nil | Cards | ^ SelectedCard | TCard | nil | Selected card | ^ CardSpacing | Integer | 10 | Spacing | —- ===== TWvdSCollapsibleGroup ===== Collapsible group. ==== Namespace ==== WvdS.UI.Controls.Layout ==== PXAML ==== <code xml> <CollapsibleGroup Header=„Advanced Options“ IsExpanded=„False“> <StackPanel> <CheckBox Content=„Enable feature X“ /> <SpinEdit Value=„100“ /> </StackPanel> </CollapsibleGroup> </code> ==== Properties ==== | Property | Type | Default | Description | ^ Header | string | Header
Content TWvdSFrameworkElement nil Content
IsExpanded Boolean True Expanded
CollapseAnimation Boolean True Animation

Events

Event Signature Description
OnExpanded TNotifyEvent Expanded
OnCollapsed TNotifyEvent Collapsed

See Also

Zuletzt geändert: on 2026/01/29 at 10:33 PM