2

是否可以在自适应卡片的 columnSet/column 中包含操作?

例如,我想要这样的东西:-

----- Body
       |___ columnSet
                |___ column1
                |       |___textblock
                |       |___image
                |       |___action.url
                |
                |___ column2
                |       |___textblock
                |       |___image
                |       |___action.url

我确实用可视化器尝试过,但是尽管可视化器没有显示任何错误,但 action.url 没有显示。

谢谢您的帮助。

4

3 回答 3

1

Column 有一个selectAction属性,可以将列变成命中目标。

            {
                "type": "Column",
                "items": [
                    {
                        "type": "TextBlock",
                        "text": "Column 1"
                    },
                    {
                        "type": "Image",
                        "url": "http://adaptivecards.io/api/cat"
                    }
                ],
                "selectAction": {
                    "type": "Action.OpenUrl",
                    "title": "cool link",
                    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
                }

有关工作示例,请参见此处:

http://adaptivecards.io/visualizer/?card=/explorer/cards/Column.SelectAction.json

于 2017-07-20T15:58:28.347 回答
1

我很欣赏这是一个古老的问题,但认为分享可能很有用......

是的你可以。在 C# 中以编程方式:

AdaptiveCard adaptiveCard = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0));

adaptiveCard.Body.Add(new AdaptiveContainer()
        {
            Items =
            {
                new AdaptiveColumnSet()
                {
                    Columns =
                    {
                        new AdaptiveColumn()
                        {
                            Width = AdaptiveColumnWidth.Stretch,
                            Items =
                            {
                                new AdaptiveActionSet()
                                {
                                    Actions =
                                    {
                                        new AdaptiveOpenUrlAction()
                                        {
                                            Title = "open url",
                                            Url = new System.Uri("https://www.blah.com")
                                        }
                                        
                                    }
                                }
                            }
                        }
                        
                    }
                }
            }
        });

JSON模式:

{
    "type": "AdaptiveCard",
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", //or wherever your schema is held
    "version": "1.2",
    "body": [
        {
            "type": "Container",
            "items": [
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "type": "Column",
                            "width": "stretch",
                            "items": [
                                {
                                    "type": "ActionSet",
                                    "actions": [
                                        {
                                            "type": "Action.OpenUrl",
                                            "title": "open url",
                                            "url": "https://www.blah.com"
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}
于 2020-07-28T12:30:06.807 回答
0

如果您无法控制卡片渲染,那么我不这么认为。

根据文档:“操作 - 许多卡片都有一组用户可以对其执行的操作。此属性描述了通常在底部的“操作栏”中呈现的那些操作。

它通常说,但似乎它们总是呈现在卡片的底部。除非您在自己的应用程序中显示自适应卡片,否则我认为不可能更改它们的呈现方式。

一种潜在的解决方法是在图像上使用选择操作,然后为图像制作自己的按钮。它的工作方式应该与此时的动作相同,但可以放置在您可以放置​​图像的任何位置。但是,需要为您的按钮创建和托管图像是不利的。

于 2018-11-14T22:01:14.520 回答