Я пытаюсь выровнять свои действия по вертикали в моей адаптивной карте. Таким образом, кнопки будут одна поверх другой. Вот мой код:
var card = new AdaptiveCard("1.0") { Height = AdaptiveHeight.Auto };
var body = new List<AdaptiveElement>();
var actionSet = new AdaptiveActionSet() { Type = AdaptiveActionSet.TypeName, Separator = true};
var title = new AdaptiveTextBlock()
{
Text = ConfusedStrings.TITLE,
Size = AdaptiveTextSize.Medium
};
body.Add(title);
body.Add(actionSet);
card.Body = body;
foreach(var intent in intentCurrentList)
{
actionSet.Actions.Add(new AdaptiveSubmitAction()
{
Title = intent.Value.ToString(),
Data = intent.Value.ToString()
});
}
var attachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = card,
};
return MessageFactory.Attachment(attachment, inputHint: InputHints.AcceptingInput);
ОБНОВЛЕНИЕ:
Адаптивные карты 1.2 теперь доступны для Команд. AdaptiveSubmitAction со строкой не работает, когда вы вводите значение. Вы должны передать ему завершенный Json объект, как в этом do c, используя тип ImBack, в https://docs.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/cards-actions#adaptive -cards-with- imback-action :
public static IMessageActivity BuildIntentSelectionCardJustin(ITurnContext turnContext, dynamic data)
{
var intentRefList = GetIntentRefList();
var intentCurrentList = intentRefList.Where(kv => ((IList<DispatchLuis.Intent>)data).Any(di => di.ToString().Equals(kv.Key)) || (kv.Key == Intent.None.ToString()));
var adaptiveCard = new AdaptiveCard("1.2");
var body = new List<AdaptiveElement>();
foreach (var intent in intentCurrentList)
{
var actionSet = new AdaptiveActionSet();
dynamic dataObject = new JObject();
dataObject.msteams = new JObject();
dataObject.msteams.type = "imBack";
dataObject.msteams.value = intent.Value;
var actionSubmit = new AdaptiveSubmitAction()
{
Title = intent.Value,
Data = turnContext.Activity.ChannelId != "emulator" ? dataObject : intent.Value
};
actionSet.Actions.Add(actionSubmit);
body.Add(actionSet);
}
adaptiveCard.Body = body;
var attachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = adaptiveCard,
};
return MessageFactory.Attachment(attachment, inputHint: InputHints.AcceptingInput);
}