Table of Contents

Namespace Icy.UI.Controls

Classes

Button

A ContentControl that fires Click/executes Command when tapped (see ITouchEvents) and is a tab-stop by default.

CheckBox

A ToggleButton styled as a checkbox. Behaviorally identical to ToggleButton - a distinct type so styles/themes can target checkbox appearance separately from a generic toggle button.

ColorPicker

A full color picker - swatches, an HSV square + hue strip, and RGBA sliders + a hex field, switchable via an internal TabControl.

ColorPickerButton

A swatch-preview button that opens a full ColorPicker in a popup.

ColumnDefinition

Defines the sizing behavior of a single Grid column.

ComboBox

A Selector with an editable text field that live-filters items by a case-insensitive Contains match against DisplayMemberPath - selection-only, not free text entry (see the class remarks on ItemsSource).

ContentControl

A Control that hosts a single arbitrary UIElement as its content, decorated by the inherited Background/BorderBrush/BorderThickness.

ContentPresenter

Marks the spot inside a ControlTemplate's content where a ContentControl's real Content should be hosted.

Control

Base class for controls that need background/border decoration without reimplementing it - composes an internal element (Chrome, a Border by default) that fills this control's entire ActualBounds and forwards Background/BorderBrush/ BorderThickness/Padding to it.

Dialog

A modal overlay - a full-viewport dimming backdrop (Chrome, themed) behind a centered content box, blocking pointer input to everything behind it (see the type's own remarks) and trapping keyboard/gamepad focus while IsOpen. Carries no result of its own - see Dialog<TResult> for the Task-returning API most callers actually want; this class is its non-generic (themeable) building block.

Dialog<TResult>

A Dialog paired with a Task<TResult>-returning show/close API - the general-purpose modal-hosting primitive most callers use directly (or through MessageBox's convenience methods). Not a UIElement itself; wraps a plain Dialog instance, which is what's actually added to a Canvas and themed - a closed generic type's runtime name embeds its type argument, so an open-generic Style TargetType="Dialog" entry would never match a Dialog<TResult> if it were a UIElement itself.

Dropdown

A Selector with a fixed-text closed-state display (SelectedItem's display text) and letter-key typeahead - no free text entry.

Expander

A collapsible region: a clickable Header row that shows/hides arbitrary Content below it, with an animated expand/collapse transition driven entirely by the existing themed VisualState system (see ExpansionProgress).

ExpanderHeader

A ToggleButton styled as an Expander's clickable header row. Behaviorally identical to ToggleButton - a distinct type so styles/themes can target the header's chevron-plus-content appearance separately from a generic toggle button, the same reasoning CheckBox already documents for itself.

Frame

A ContentControl that hosts the Page its own Navigation service currently points to.

Grid

Arranges its Children into a grid of rows and columns defined by RowDefinitions/ColumnDefinitions, placed via the Row/Column attached properties (GetRow(UIElement)/SetRow(UIElement, int), GetColumn(UIElement)/SetColumn(UIElement, int)).

Icon

Draws one small, stroke-only vector glyph (see Kind) scaled to fill this element's own bounds - a minimal alternative to a full path/shape markup language, covering exactly the iconography simple themed controls need (a checkbox's check, a dropdown's chevron) without a bitmap asset.

Image

Displays a single IImage (e.g. an ImageBrush or NinePatchImageBrush), sized to Size unless overridden by an explicit Width/Height.

ItemContainer

The minimal container ItemsControl wraps each realized data item's built visual tree in.

ItemsControl

Generates one ItemContainer per item in ItemsSource, via ItemTemplate/ItemTemplateSelector, and virtualizes them - only the containers intersecting the current viewport (plus a small scroll-ahead buffer) are ever realized.

ListBox

A plain, always-visible, virtualizing, single-selectable list - the most direct realization of "an ItemsControl with click-to-select.".

MessageBox

Static convenience helpers that build a small content tree and show it via Dialog<TResult> - a message with a button row (ShowAsync(Canvas, string, DialogButtons)), or a single-line text prompt (ShowInputAsync(Canvas, string, string?)). A separate, non-generic class rather than static members on Dialog<TResult> itself, to avoid declaring statics on a generic type (CA1000) while keeping Dialog<TResult>'s own API fully type-safe.

Page

A ContentControl that a Frame can navigate to.

ProgressBar

Displays Value as a proportion of Minimum/Maximum, drawn as a track (this control's inherited Background/BorderBrush) with a FillBrush-colored fill growing from the left.

PropertyGrid

A Unity-Inspector-style control: lists Target's properties as rows (a label and a type-appropriate editor), letting a user edit them.

RowDefinition

Defines the sizing behavior of a single Grid row.

ScrollViewer

Clips Content to this control's bounds and lets it be scrolled within that viewport via HorizontalOffset/VerticalOffset - settable directly, or driven by the mouse wheel/touch-swipe (see IScrollEvents).

SelectingItemsControl

Adds single-item selection on top of ItemsControl - the shared base for Selector (adds a popup on top of this) and WrapGrid/ListBox (always-visible, no popup).

Selector

Adds single selection and a popup-hosted item list on top of SelectingItemsControl - the shared base for Dropdown and ComboBox.

SelectorItem

The container a Selector realizes each item as - an ItemContainer with selection/highlight state layered on top.

Slider

A horizontal slider - drag the thumb (or tap the track) to set Value between Minimum and Maximum.

SplitPane

Splits a region into two resizable areas (First/Second) separated by a draggable divider.

StackPanel

Arranges its Children in a single line, sequentially along Orientation.

TabControl

A row of clickable tab headers, each showing/hiding its own Content - realizes each TabItem's header as a SelectorItem via the inherited SelectingItemsControl machinery, but never scrolls: unlike ListBox/ WrapGrid, this control doesn't participate in IVirtualizingScrollInfo's viewport-driven realize pipeline at all - it eagerly realizes every header itself, since a handful of tab headers never need virtualizing.

TabItem

One tab within a TabControl - Content is the tab's own body, shown only while this item is the TabControl's SelectedItem; Header/Icon describe how this tab's clickable header row looks.

TextBlock

Displays a single run of text using a font resolved from Configuration's Fonts service.

TextBox

A single-line editable text field. Builds on the existing ITextEvents character synthesizer for typed input and raw IKeyboardInput (only while focused) for caret movement/deletion, and draws its own caret.

ToggleButton

A Button that toggles IsChecked each time it's tapped/activated, and reflects it via Checked for styling.

TreeView

Shows hierarchical data as an indented, expandable list. Only visible rows are realized, however large the tree.

TreeViewExpander

The chevron of a TreeViewItem: an Icon that reports its own taps, so a tap on it opens or closes the row without selecting it.

TreeViewItem

A row of a TreeView: a SelectorItem that knows its depth, whether it has children and is expanded, and whether it can be selected.

TreeViewItemEventArgs

Carries the data item of a ItemExpanded or ItemCollapsed event.

TreeViewNode

A ready-made data item for a TreeView: a header, child nodes, and per-node expansion and selectability. Lets a static tree be written directly in markup.

Window

A modal dialog - a IsFocusScope that traps Tab/gamepad focus traversal within itself while IsOpen, and restores whatever was focused before it opened when it closes.

WrapGrid

An auto-flowing, virtualizing grid of uniformly-sized cells - realized items fill left-to-right and wrap to the next row, e.g. an icon/inventory grid.

Structs

GridLength

Specifies the size of a Grid row or column.

Enums

DialogButtons

The set of buttons a ShowAsync(Canvas, string, DialogButtons) message box shows.

DialogResult

The result a MessageBox (or any Dialog<TResult> that chooses to reuse it) closes with.

GridUnitType

Specifies how a GridLength's Value should be interpreted.

IconKind

Identifies which small vector glyph an Icon draws.

PanningMode

Specifies along which axes a ScrollViewer pans with touch and the middle mouse button.

ScrollMode

Specifies whether a ScrollViewer scrolls along one axis.