应用程序设计指南

现代控件

画布应用程序中的现代控件代表了 Microsoft 生态系统中用户界面开发和设计的重大进步。 这些控件基于 Microsoft 的 Fluent 设计系统,旨在提供快速、以性能为导向且可访问的用户体验,同时确保与主题化功能的无缝集成。 这些控件的引入,包括标签列表、进度条、信息按钮、微调按钮等,强调了向创建更直观、响应更快、视觉效果更好的应用程序的战略转变。 通过使用这些现代控件,开发人员可以轻松实现美观且功能丰富的复杂 UI 元素,从而提高整体用户参与度和满意度。

这些控件的固有设计考虑到了主题化问题,可在各应用程序中实现统一、一致的外观和感觉,大大减少了定制和品牌化应用程序所需的工作量。 基于设置的主题可自动更新所有控件样式,从而简化设计过程,并确保应用程序始终保持视觉一致性。 这完全符合现代企业在提供高质量数字体验的同时保持品牌一致性的需求。 现代控件还强调辅助功能和性能,从而可确保各种应用程序由各种受众(包括残障人士)使用,从而符合包容性设计原则。 因此,区域应用程序中的新控件不仅是一组 UI 组件,而是一个转换工具集,它帮助开发人员构建更有效、可维护、可访问和开放的应用程序,以满足企业以及用户等不断发展的需求。

重要提示

虽然画布应用程序中现代控件的一部分已正式发布 (GA),但范围更广的功能集仍为预览版。 我们鼓励您浏览这些预览控件并提供反馈。 但是,请记住,其特性和功能在正式发布之前可能会根据反馈和测试进行改进。

表单设计和指南

组织您的表单

  • 将表单分成逻辑部分,将相关字段分组。
  • 目标是尽量让您的表单在一个屏幕上显示。 如果表单内容较多,请考虑将其分为多个屏幕、步骤或选项卡。
  • 对字段标签使用清晰而简单的语言,避免使用陌生的术语或行话。
  • 实施验证规则以确保数据准确性。 对于必填字段,请明确指出是必填的。 根据需要验证电子邮件地址、电话号码和其他格式。

重用表单

  • 使用单个表单可以创建新记录、编辑现有记录以及以仅视图模式显示记录。
  • 重复使用同一表单可减少开发和维护时间,同时确保一致性。

窗体模式

根据用户操作动态设置表单模式。 例如:

  • 创建新记录时,将表单设置为“新建”模式。
  • 编辑现有记录时,将表单设置为“编辑”模式。
  • 显示记录时,将表单设置为“查看”模式。

控件的位置

  • 将不同的控件(如库、显示表单和编辑表单)放在单独的屏幕上,使其可区分。
  • 将这些控件与公式相结合使用,可创建连贯的用户体验。

容器

随着画布应用程序的大小不断增大,以解决更多业务情况,控件数量将继续增加,并且需要根据它们的功能进行组织。 为此,一个简单的方法就是一起选择控件,将它们分组到一个组中。 但是,并非始终建议进行控件分组。 画布应用 Container 控件可以保存一组控件,并有自己的属性。

容器作为空白区域,您可以插入和组织相对于容器控件左上角的控件。 您可以灵活地嵌套容器,允许创建更复杂的布局并提供设计自由度。

容器是具有自己的属性(如 WidthBorderColor)的实际控件。 容器影响应用布局并帮助屏幕阅读器用户了解应用的结构。

虽然您可以在组中添加任何控件,但您应该只在容器中添加逻辑上相关的控件。

使用组组织 Power Apps 元素允许用户将共享属性应用于多个元素。 但是,在组中进行单个属性更改可能需要手动调整。 此外,出于可访问性的原因,组不会在应用程序的逻辑结构中显示,因为屏幕阅读器无法识别它们。 此外,由于无法嵌套组,因此难以创建更复杂的布局。

避免在子控件的事件(如 ItemsOnChange)中修改库的 OnSelect 属性。 这可能会导致意外行为,特别是当处理某些控件在值更改时触发事件时。

小心使用 OnChange 触发的控件

在库中使用组合框、日期选择器、滑块或切换开关等控件时要小心。 这些控件可能会意外触发 OnChange 事件,从而可能导致无限循环等潜在问题。

对修补的性能影响

修补或更新库中的项目时,尤其是处理大量项目时,请注意性能影响。 修补可能会很慢,且库可能会重新加载所有项目,从而影响性能。

小心处理无限循环**

如果修改库数据会触发导致无限循环的事件,可以考虑使用现代控件或在数据改变时不会触发 OnChange 的控件来打破循环。

避免嵌套库

嵌套库会导致性能问题和复杂的数据绑定。

尽可能避免嵌套库。 相反,尝试以优化的方式设计数据结构和使用函数。

使用灵活的高度库

固定高度的库可能会导致内容可见性有限,尤其是在处理动态数据时。

通过将 Height 属性设置为 Parent.Height 或基于数据的动态值,可以使用灵活的高度库。 这可确保库调整其高度,以容纳不同的数据量。

突出显示空白灵活高度库的 Power Apps Studio 的屏幕截图

优化数据加载

在优化 Power Apps 中的数据加载时,您可能只想要获取和显示库中必要的列,而不是检索整个数据集。

以下是您实现此目的的示例:假定您的一个 EmployeeData 集合包含多个列,并且您希望在库中仅显示“名称”和“部门”列。

// Collection named ProductSales with sample sales data

ClearCollect(ProductSales, 
    Table(
        { ProductName: "Phone", UnitPrice: 499.99, QuantitySold: 100 },
        { ProductName: "Laptop", UnitPrice: 999.99, QuantitySold: 50 },
        { ProductName: "Tablet", UnitPrice: 299.99, QuantitySold: 75 }
    )
)

// Bind the gallery to display only the "ProductName" and "QuantitySold" columns

Gallery1.Items = ShowColumns(ProductSales, ProductName, QuantitySold)

获取更多关于库最佳实践的信息。

构建可重用组件

使用 Power Apps Component Framework (PCF) 创建自定义代码组件时

Power Platform 允许通过 Power Apps Component Framework (PCF) 创建可重用组件。 更多详情请点击此处

以下是您在 Power Apps 中可能考虑创建 PCF 组件的场景:

复杂 UI 元素

当您需要创建复杂的用户界面元素或控件时,这些元素或控件在标准 Power Apps 控件中不容易找到。

针对特定要求自定义控件

当开箱即用的控件无法满足应用程序的特定要求时,并且您需要创建符合您需求的自定义控件时。

跨应用程序实现一致的用户体验

当您希望将特定功能封装在 PCF 组件中来保持跨多个 Power Apps 或环境的一致用户体验时。

跨应用的可重用性

当您预计需要在多个应用程序中重用特定功能或用户界面元素时,创建 PCF 组件允许您构建一次并重复使用。

实现高级逻辑

当您需要实现超出 Power Apps 中标准公式或函数能力的高级业务逻辑或计算时。

改善用户体验

当您旨在通过创建无法通过默认控件实现的具有视觉吸引力的交互式组件来增强总体用户体验时。

下一步