如何使用;选择操作“;AdaptiveCard中AdaptiveColumnSet()的属性?C# private Attachment CardExample() { AdaptiveCard卡=新的AdaptiveCard(“1.0”); card.Body.Add(新的AdaptiveContainer() { 样式=自适应内容样式。强调, Items=新列表() { 新的AdaptiveColumnSet() { Type=“ColumnSet”, 高度=自适应高度。自动, SelectAction=new AdaptiveSubmitAction() { Type=“Action.Submit”, Id=“提交”, Title=“提交”, } }, } }); 附件测试卡=新附件 { ContentType=AdaptiveCard.ContentType, Content=JsonConvert.DeserializeObject(JsonConvert.SerializeObject(卡片)), }; 返回测试卡; }
//它没有任何编译错误,但在呈现自适应卡时,提交按钮不会出现如何使用;选择操作“;AdaptiveCard中AdaptiveColumnSet()的属性?C# private Attachment CardExample() { AdaptiveCard卡=新的AdaptiveCard(“1.0”); card.Body.Add(新的AdaptiveContainer() { 样式=自适应内容样式。强调, Items=新列表() { 新的AdaptiveColumnSet() { Type=“ColumnSet”, 高度=自适应高度。自动, SelectAction=new AdaptiveSubmitAction() { Type=“Action.Submit”, Id=“提交”, Title=“提交”, } }, } }); 附件测试卡=新附件 { ContentType=AdaptiveCard.ContentType, Content=JsonConvert.DeserializeObject(JsonConvert.SerializeObject(卡片)), }; 返回测试卡; },c#,botframework,adaptive-cards,C#,Botframework,Adaptive Cards,//它没有任何编译错误,但在呈现自适应卡时,提交按钮不会出现 //只有空容器列集可以包含单击操作,但没有显示按钮,就这么简单。如果单击列集,它将执行该操作 我在下面附上了一些图片等来说明它的工作原理。这有点笨重,但你可以理解我的意思 这个例子是一个OpenUrl,它打开到google.com,一个Submit操作也是一样的,只需要包含你想要发送回bot的数据,并捕获它,然后在OnTurnAsync中处理它(如果你使用的是v4框架) 我知道这个答案是缺乏的,但。。。这就是答案。:-) 实现中的
//只有空容器列集可以包含单击操作,但没有显示按钮,就这么简单。如果单击
列集
,它将执行该操作
我在下面附上了一些图片等来说明它的工作原理。这有点笨重,但你可以理解我的意思
这个例子是一个OpenUrl
,它打开到google.com,一个Submit
操作也是一样的,只需要包含你想要发送回bot的数据,并捕获它,然后在OnTurnAsync
中处理它(如果你使用的是v4框架)
我知道这个答案是缺乏的,但。。。这就是答案。:-) 实现中的问题是在空容器上添加selectAction。列集需要列,而每列都需要内容。在您的情况下,列中没有实际的项目,因此没有可单击的内容 下面是如何实现列集的示例:
private Attachment CardExample()
{
AdaptiveCard card = new AdaptiveCard("1.0");
card.Body.Add(new AdaptiveContainer()
{
Style = AdaptiveContainerStyle.Emphasis,
Items = new List<AdaptiveElement>()
{
new AdaptiveColumnSet()
{
Type = "ColumnSet",
Height = AdaptiveHeight.Auto,
SelectAction = new AdaptiveSubmitAction()
{
Type="Action.Submit",
Id = "Submit",
Title="Submit",
}
},
}
});
Attachment TestCard = new Attachment
{
ContentType = AdaptiveCard.ContentType,
Content= JsonConvert.DeserializeObject(JsonConvert.SerializeObject(card)),
};
return TestCard;
}
嗨,我不确定SelectAction属性的用法。我看到一段代码,其中有人以这种方式使用它,但我没有得到结果。您能在这里提供JSON输出吗?您是否尝试将其粘贴到adaptive card designer并确认预期结果@MattHidinger-感谢您回复Matt。我正在尝试用C#设计这张卡,很难在其中找到语法。上面选择columnset中的操作的代码中是否缺少一些内容,因为它没有显示任何语法错误,但也没有给出结果。
{
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "ColumnSet",
"spacing": "medium",
"columns": [
{
"type": "Column",
"width": "auto",
"items": [
{
"type": "Image",
"url": "https://unsplash.it/80?image=1083",
"size": "medium"
}
]
},
{
"type": "Column",
"width": 4,
"items": [
{
"type": "TextBlock",
"text": "Silver Star Mountain"
},
{
"type": "TextBlock",
"text": "Maps",
"isSubtle": true,
"spacing": "none"
}
]
}
],
"selectAction": {
"type": "Action.OpenUrl",
"title": "Silver Star Mountain",
"url": "ms-cortana:silver-star-mountain"
}
}
]
}