Table of Contents

Concepts

The ideas behind IcyUI: what you need to know to predict how your UI behaves. Each page explains one part of the model with a small example, the rules that matter, and the usual pitfalls; the API reference has every member.

  • Canvas, the host and the element tree: Where your UI lives: the canvases the engine draws, the host that connects them to your game, and the tree of elements on each canvas.
  • Configuration: What UseIcyUI() sets up, the builder's sections, and how your settings override the engine's defaults.
  • Layout: How elements get their size and position: measure and arrange, sizes and margins, alignment, panels and scale.
  • Data binding: Connecting elements to your view model: the data context, binding modes, element bindings and conversion.
  • Resources, styles and themes: Reusing values and looks: resource dictionaries, implicit and keyed styles, the theme, and which value wins.
  • Control templates and visual states: Replacing how a control looks, and changing it with its state: hovered, pressed, focused, checked.
  • Input, focus and navigation: Mouse, keyboard, gamepad and touch: focus, spatial navigation, gestures, and drag and drop.
  • Animations: Animating any property over time, from code or from visual states, with easing.
  • DPI and UI scaling: Keeping the UI the right size on every display: DPI scaling, a reference resolution, and a player UI-size setting.
  • Localization: Showing your UI in the player's language: localizers, {Localize}, and switching languages.
  • Assets and fonts: Loading markup, images and fonts: where files come from, system and imported fonts, and the fallback font.
  • Logging and diagnostics: IcyUI's warnings and where they go, and the debug tools that show layout boxes, focus and frame time.
  • Markup editing and design tools: Editing your markup while the game runs with the in-game editor, and saving it back to your files.