跳到主要内容

Converters

title: "转换器(Converters)"

description: "使用内置和自定义转换器,在数据绑定应用前对数据进行变换和适配"


转换器(Converters)在值被应用到绑定之前对其进行变换。

使用它们来适配数据以匹配你要绑定的属性——例如,将数字转换为字符串、在范围之间映射值,或随时间平滑变化。

添加转换器(Adding a Converter)

构建并应用一个转换器

  1. 创建转换器

    在资源(Assets)面板中,点击 + 按钮并选择转换器类型

  2. 设置转换器选项

    选中转换器后,在右侧边栏中更新设置。

    大多数选项都可以进行数据绑定。

  3. 应用你的转换器

    在设置或更新绑定时,在 Converter 字段中选择转换器。

转换器类型(Converter Types)

转换器可以单独使用,也可以组合成转换器组来执行更复杂的变换。

类别转换器描述
字符串(String)填充(Pad)为字符串添加填充字符
修剪(Trim)移除前导或尾随空白
转换为字符串(Convert to String)将值转换为字符串
移除尾部零(Remove Trailing Zeros)移除不必要的小数零
数字(Number)四舍五入(Round)舍入到最接近的值
计算(Calculate)执行简单计算
范围映射(Range Map)将值从一个范围映射到另一个范围
插值器(Interpolator)在值之间平滑插值
公式(Formula)求值自定义表达式
转换为数字(Convert to Number)将值转换为数字
布尔(Boolean)切换(Toggle)反转布尔值
列表(List)数字转列表(Number to List)基于数字生成指定数量的组件
列表转长度(List to Length)获取列表中的项数
颜色(Color)插值器(Interpolator)在颜色之间平滑插值
脚本(Script)转换器脚本(Converter Scripts)创建你自己的自定义转换器

填充(Pad)

通过在开头或结尾重复某个值,将字符串填充到目标长度。

如果字符串短于指定长度,填充值将被重复添加直到达到目标长度。

示例:

  • 值(Value): 1
  • 填充(Pad): "0"
  • 方向(Direction): Start(开头)
  • 长度(Length): 3

结果: "001"


范围映射(Range Map)

将一个数字从一个范围映射到另一个范围。

当你需要将输入值转换为不同的尺度时,使用范围映射。

示例

将滑块值(0–100)转换为不透明度值(0–1):

  • 输入:50
  • 输入范围:0 → 100
  • 输出范围:0 → 1

结果: 0.5


数值插值器(Numeric Interpolator)

插值形状

在数值之间随时间平滑过渡,使变化舒缓而不是瞬间跳变。


公式(Formula)

生成公式

公式允许你使用视图模型中的值或输入值执行自定义计算。

你可以通过两种方式创建公式:

直接编写

random({{NumberConvertersVM/circleX}} / {Input}) + 2

{Input} 指传入的值,而 {{...}} 引用视图模型属性。

使用编辑器

点击 + 按钮添加值、运算和函数。编辑会为你构建公式并生成等效的表达式。

💡

公式不需要输入

无论输入值如何,以下公式都会输出一个随机数。

  random(2)

随机模式(Random Mode)

在公式中使用 random() 时,随机模式决定何时生成新的随机值。

  • Once(一次) — 仅在公式首次运行时生成随机值
  • Source Change(源变化) — 每次输入变化时生成新值
  • Always(始终) — 输入变化时以及插值期间持续生成新值

数字转列表(Number to List)

数字转列表转换器允许你基于一个数字生成指定数量的组件。

更多信息请参见列表


颜色插值器(Color Interpolator)

插值颜色

在颜色值之间随时间平滑过渡,使变化舒缓而不是瞬间跳变。


转换器脚本(Converter Scripts)

当内置转换器无法满足你的需求时,脚本让你可以创建自定义转换器。

更多信息请参见转换器脚本

转换器组(Converter Groups)

构建转换器组

转换器组允许你将多个转换器串联在一起,前一个的输出成为后一个的输入。

  1. 创建转换器组

    在资源面板中,点击 + 按钮并选择 Converter > Group。

  2. 向组中添加转换器

    选中组后,在右侧边栏中点击 + 按钮并选择已有或新的转换器。

绑定值时,转换器组可以像单个转换器一样使用。

执行方式

转换器从上到下运行:

  • 第一个转换器接收原始输入
  • 每个转换器将其结果传递给下一个
  • 最终输出是最后一个转换器的结果

重新排序转换器

上下拖动转换器来改变其运行顺序。

靠前的转换器会影响其后所有转换器。