布置

场景图

场景图定义了内容结构和内容在屏幕上的布局。场景图由显示内容(例如图像 (Image)节点)和实现逻辑(例如2D 按钮 (Button 2D) 节点)的节点构成。同一场景图支持 2D 和 3D 节点,并可将二者连接。 场景图中节点之间的关系非常重要,这依赖于一些特定的 Kanzi 核心技术。渲染顺序、布局、属性和资源继承以及输入和消息传播都取决于场景图中父节点和子节点之间的关系。 Kanzi 提供了一些工具,用于模块化和重复使用场景图的某些部分(例如预设件)。

Kanzi 中提供的节点

内容控制节点

交互性控件节点

布局控制节点

容器控件节点

3D 节点

类层级结构

基类是 Node。2D 节点的基类是 Node2D,并允许将 2D 节点添加为子节点。 Node3D 以相同的方式作用于 3D 节点。Node 类无法连接子节点,因此 Node2DNode3D 和派生类可以定义它们允许将哪些类型的节点视为子节点。例如, 2D 视口 (Viewport 2D) 派生自 Node2D 类,因此接受 2D 子节点,但也可以接受一个场景 (Scene) 类型的子节点。通过这种方式,Kanzi 即可在异构图中排列 2D 和 3D 节点。

要以同类的方式迭代图形,请使用 Visitor 或 Abstract Child API:

每个节点都有权访问其父节点。父指针的类型为 Node,原因在于父指针的类型既可以是 2D,也可以是 3D。

请参阅Kanzi 场景图类层级。