Adaptive Card自适应卡片的TextBlock中能否插入制表符tab?
Adaptive Card TextBlock插入制表符的解决方案
核心原因
Adaptive Card的TextBlock组件默认会合并所有连续空白字符(包括\t制表符、多个普通空格)为单个空格,因此直接写\t不会生效,属于设计层面的默认规则。
可行实现方案
- 方案1:用非断空格实体
替代
非断空格不会被渲染器合并,需要多大的缩进就插入对应数量的 即可,通常1个制表位对应4个 ,示例代码:
若TextBlock开启了markdown模式(设置{ "type": "TextBlock", "text": "This is some text", "size": "large" }"markdown": true),该方案同样生效。 - 方案2:用ColumnSet容器实现对齐(更推荐)
如果是多列对齐类的需求,用Adaptive Card原生的ColumnSet布局比手动插空格兼容性和效果更好,可通过调整空白列的宽度模拟制表位距离,示例代码:{ "type": "ColumnSet", "columns": [ { "type": "Column", "width": "auto", "items": [ { "type": "TextBlock", "text": "This is some", "size": "large" } ] }, { "type": "Column", "width": "40px", "items": [] }, { "type": "Column", "width": "stretch", "items": [ { "type": "TextBlock", "text": "text", "size": "large" } ] } ] } - 方案3:内联样式缩进(仅部分渲染器支持)
若你使用的Adaptive Card渲染器支持HTML内联样式,可直接用padding属性实现固定缩进,示例:{ "type": "TextBlock", "text": "This is some <span style=\"padding-left: 32px\">text</span>", "size": "large" }
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

