当前位置: 首页 > news >正文

iTwin UI

用例可参考

https://developer.bentley.com/samples/

AppUI

提供一系列 React 组件的框架,用于为 iTwin.js 应用程序构建用户界面。它将工作流程组织在“前台阶段”(frontstages)中,展示一个中心内容(通常是 iTwin.js 的 canvas),周围环绕着工具设置、工具栏、状态栏和小组件,以实现统一的外观和体验。

用户可以在运行时对这些小组件进行停靠、浮动、调整大小、移动等操作,从而根据个人喜好配置界面。

前台阶段的配置可以通过易于共享的 UiItemsProvider 完成,该提供程序可用于为特定工作流程构建 UI,然后在其他应用程序或前台阶段中复用。

Backstage

应用的主导航菜单,用于在不同前台阶段之间切换、打开叠加层或启动自定义命令。你可以使用 BackstageComposer 来设置一个“后台”,它会在应用左侧边缘显示一个叠加菜单。如下图所示

Content

应用程序展示的核心区域。
通常,这里呈现的是 iModel 的可视化渲染,但也可以是任意 React 组件。
内容区域可划分为多个网格区块,以便同时展示多个不同方面的信息。

Navigation Aid

辅助浏览视口(Viewport)内容

Frontstage

布局配置,用于定义应用程序中针对特定任务量身定制的页面。
你可以注册一个 FrontstageProvider 来定义自定义的前frontstage,如下

export class MainFrontstageProvider extends StandardFrontstageProvider {public static id: string = MainFrontstageId;public constructor(props: MainFrontstageProps) {super({...props.frontstageProps,id: MainFrontstageProvider.id,contentGroupProps: new DefaultContentGroupProvider(props.viewportOptions,props.viewCreatorOptions,props.blankConnectionViewStateOptions,),hideNavigationAid: false,cornerButton: undefined,usage: StageUsage.General,leftPanelProps: {size: 300,pinned: true,defaultState: StagePanelState.Open,resizable: true,},rightPanelProps: {size: 300,pinned: true,defaultState: StagePanelState.Open,resizable: true,},});}
}

Status Bar

用户界面中专用于显示应用程序当前状态信息的区域。
你可以使用 StatusBarComposer 在应用底部以页脚形式展示状态栏。

Stage Panel

交互式 UI 元素,最多包含两个面板区域,显示在应用程序的某一侧

Stage Panel Section

stage panel中专用于容纳多个小部件(widget)的区域。

Toolbar

一种可交互的 UI 元素,可让用户快速访问应用程序中常用的工具和操作。
你可以使用 ToolbarComposer 为特定用途及方向显示工具栏,比如漫游,居中等工具都是在这里

Tool Settings

用户界面中专用于显示与当前活动工具相关属性或信息的区域

UI Items Provider

一种向应用提供 UI 元素(如小部件、backstage、工具栏或状态栏项)的机制。
你可以注册一个 UiItemsProvider 来追加额外的元素。

export class DisplayStylesWidgetProvider implements UiItemsProvider {public readonly id: string = "ViewerOnly2dWidgetProvider";public provideWidgets(_stageId: string, _stageUsage: string, location: StagePanelLocation, _section?: StagePanelSection): ReadonlyArray<Widget> {const widgets: Widget[] = [];if (location === StagePanelLocation.Bottom) {widgets.push({id: "DisplayStylesWidget",label: "Display Styles Selector",defaultState: WidgetState.Open,content: <DisplayStylesWidget />,});}return widgets;}
}

已经封装好的Provider

ViewerNavigationToolsProvider

export interface DefaultNavigationTools {horizontal?: {rotateView?: boolean;panView?: boolean;fitView?: boolean;windowArea?: boolean;viewUndoRedo?: boolean;};vertical?: {walk?: boolean;toggleCamera?: boolean;setupWalkCamera?: boolean;};
}

MeasureToolsUiItemsProvider

https://www.npmjs.com/package/@itwin/measure-tools-react

ViewerStatusbarItemsProvider

Widget

一种可交互的 UI 元素,用于展示应用程序的自定义内容,允许用户查看和/或与当前上下文相关的数据进行交互。
Widget 的内容本身只是一个 React 组件,但你可以通过附加元数据(如标签或图标)来定制或初始化它。多个 Widget 可以分组并显示在同一个 Widget 容器中。

  • 停靠(Docked):Widget 被固定在页面侧边的舞台面板区域。

  • 浮动(Floating):Widget 以类似对话框的形式悬浮在页面上。

  • 弹出(Popout):Widget 被显示在一个独立的弹出窗口中。

纯Typescript的前端用例

https://github.com/iTwin/viewer-sample-typescript

UI组件

Bentley UI 组件

http://www.dtcms.com/a/594467.html

相关文章:

  • 虚拟主机和网站的关系西安大型网站制作
  • 积极推进在线网站建设网站运营计划书
  • 远程网页调试工具实战:跨端前端调试的核心利器与最佳实践
  • (二)Docker实战--Docker镜像部署与启动
  • 【ZeroRange WebRTC】对称加密 vs 非对称加密(从原理到实践)
  • 网站建设逻辑长沙网络营销群
  • 你们交学费做网站局机关门户网站建设自查报告范文
  • 腾讯企点网页版山东网站排名优化公司
  • 网站地图有什么作用陕西seo顾问服务
  • openai 的 codex
  • 国内网如何看国外网站南阳河南网站建设价格
  • 电脑有连接网络,但浏览器网页无法打开
  • 专门做招商的网站东台网站建设
  • 网站便民服务平台怎么做wordpress优化cookie
  • 从BI深耕到AI洞察的渐进式增长实践
  • 建设银行网站转账计算机网站开发书籍
  • 茶叶公司网站源码jsp网站开发的使用表格
  • 重庆在建项目查询windows优化大师值得买吗
  • 做别人一样的网站模板网站开发的评论界面怎么写
  • 备案 网站名称 重复宾馆网站模板
  • 音乐网站怎么建设icp
  • 从局部性原理到一致性模型:深入剖析缓存设计的核心权衡
  • 自己动手写深度学习框架(数值法计算梯度)
  • Linux上的curl和telnet
  • 网络科技有限公司网站建设wordpress手机分享插件
  • 河北建设厅注册中心网站首页百科类网站建设
  • 医院网站建设公司价格外贸网站增加外链方法
  • 网站认证是什么意思萝岗哪家网站建设好
  • 感悟生命:《藏在罐子里的爱》
  • Raylib 事件