Nodes are the basic building blocks of Fuse apps.

Nodes are typically instantiated in UX Markup, and come in many different subclasses.

Subclasses inheriting Visual have a visual representation on the screen, and/or manages input for a specific visual region.

Subclasses inheriting Behaviors modify the behavior of Visuals.

Location

Namespace
Fuse
Package
Fuse.Nodes 2.9.1
Show Uno properties and methods

Interface of Node

ContextParent : Node uno

The context parent is the semantic parent of this node. It is where non-UI structure should be resolved, like looking for the DataContext, a Navigation, or other semantic item.

FindNodeByName(Selector, Predicate<Node> (Node)) : Node uno

Finds the first node with a given name that satisfies the given acceptor. The serach algorithm works as follows: Nodes in the subtree are matched first, then it matches the nodes in the subtrees ofthe ancestor nodes by turn all the way to the root. If no matching node is found, the function returns null.

IsRootingStarted : bool uno

Whether rooting of this node has started. Note that even if this property returns true, rooting may not yet be completed for the node. See also IsRootingCompleted.

Name : Selector ux

Run-time name of the node. This property is automatically set using the ux:Name attribute.

OnRooted uno

If you override OnRooted you must call base.OnRooted() first in your derived class. No other processing should happen first, otherwise you might end up in an undefined state.

Inherited from PropertyObject

Inherited from object

Implemented Interfaces

IScriptObject uno

Interface for objects that can have a script engine representation

Remarks

The "rooted" concept

Nodes can be rooted within an App. This means that they form part of the subtree currently connected to the App singleton. In the following example, the Panel and Rectangle are always rooted:

<App>
    <Panel>
        <Rectangle />
    </Panel>
</App>

When a node is removed from a rooted tree, it becomes unrooted.

While rooted, nodes have a Parent. Only Visual nodes can be parents of other nodes. However, Behaviors may contain other nodes in UX markup. In the following example, the WhilePressed (which is a Behavior) contains a Circle. The Circle is not rooted by default.

<Panel>
    <WhilePressed>
        <Circle />
    </WhilePressed>
</Panel>

While the Panel is pressed, the Circle is added to the Panel. Assuming the Panel is rooted, this will make the Circle rooted. When the Panel is no longer pressed, the Circle is removed from the Panel, unrooting the Circle.